mirror of
https://github.com/HendrikRauh/inventree-app.git
synced 2026-01-13 03:26:24 +00:00
Compare commits
40 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96627adf7b | ||
|
|
0546fba37f | ||
|
|
5f623c0594 | ||
|
|
bf19ace3e9 | ||
|
|
8c15bdafdf | ||
|
|
571ff1880f | ||
|
|
864c3eea76 | ||
|
|
346b1a150f | ||
|
|
bb10117f01 | ||
|
|
0f31638bdc | ||
|
|
7283c07b76 | ||
|
|
6e02d1da97 | ||
|
|
3ee2192c92 | ||
|
|
01ac0fc59e | ||
|
|
13d95dd1b1 | ||
|
|
e41842a31d | ||
|
|
d039f3cfcf | ||
|
|
a75245b183 | ||
|
|
8a4750d298 | ||
|
|
6707f89019 | ||
|
|
ed7d73b9c0 | ||
|
|
0eedf25d11 | ||
|
|
daf3bf8291 | ||
|
|
ae1d8dd188 | ||
|
|
2252dd2fd6 | ||
|
|
490d008447 | ||
|
|
0fc80b1be3 | ||
|
|
9083f19531 | ||
|
|
2f8f42822a | ||
|
|
2b68c30568 | ||
|
|
4a094f4a77 | ||
|
|
a078a9d126 | ||
|
|
624655ec6b | ||
|
|
6b67cc9e50 | ||
|
|
790abb4c7d | ||
|
|
1407d8bc37 | ||
|
|
bdc5573311 | ||
|
|
d237a0e076 | ||
|
|
449f4a4ce5 | ||
|
|
3739c88e93 |
86 changed files with 6777 additions and 3136 deletions
14
.envrc
Normal file
14
.envrc
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# Check if nix is available
|
||||
if command -v nix &> /dev/null; then
|
||||
use flake
|
||||
|
||||
echo "✅ Nix development environment loaded"
|
||||
else
|
||||
# Nix is not available - show instructions for non-Nix users
|
||||
echo "⚠️ Nix not detected. Please ensure the following are installed manually:"
|
||||
echo " - Java JDK 17"
|
||||
echo " - Python 3 with invoke package"
|
||||
echo " - Android SDK"
|
||||
echo " - FVM (Flutter Version Management)"
|
||||
echo "💡 To use Nix: Install from https://nixos.org/download.html"
|
||||
fi
|
||||
11
.github/workflows/android.yaml
vendored
11
.github/workflows/android.yaml
vendored
|
|
@ -3,6 +3,9 @@
|
|||
name: Android
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
|
@ -30,7 +33,7 @@ jobs:
|
|||
with:
|
||||
flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }}
|
||||
channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }}
|
||||
cache: true
|
||||
cache: false
|
||||
cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:"
|
||||
cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:"
|
||||
pub-cache-key: "flutter-pub:os:-:channel:-:version:-:arch:-:hash:"
|
||||
|
|
@ -50,5 +53,7 @@ jobs:
|
|||
|
||||
- name: Build for Android
|
||||
run: |
|
||||
flutter pub get
|
||||
flutter build apk --debug
|
||||
dart pub global activate fvm
|
||||
fvm install
|
||||
fvm flutter pub get
|
||||
fvm flutter build apk --debug
|
||||
|
|
|
|||
23
.github/workflows/ci.yaml
vendored
23
.github/workflows/ci.yaml
vendored
|
|
@ -30,6 +30,11 @@ jobs:
|
|||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Install Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.11
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
|
|
@ -53,20 +58,18 @@ jobs:
|
|||
- name: Collect Translation Files
|
||||
run: |
|
||||
cd lib/l10n
|
||||
python3 collect_translations.py
|
||||
python collect_translations.py
|
||||
|
||||
- name: Static Analysis Tests
|
||||
working-directory: .
|
||||
run: |
|
||||
python3 find_dart_files.py
|
||||
flutter pub get
|
||||
flutter analyze
|
||||
python ./find_dart_files.py
|
||||
dart pub global activate fvm
|
||||
fvm install
|
||||
fvm flutter pub get
|
||||
fvm flutter analyze
|
||||
dart format --output=none --set-exit-if-changed .
|
||||
|
||||
- name: Install Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.9
|
||||
|
||||
- name: Start InvenTree Server
|
||||
run: |
|
||||
sudo apt-get install python3-dev python3-pip python3-venv python3-wheel g++
|
||||
|
|
@ -82,7 +85,7 @@ jobs:
|
|||
|
||||
- name: Unit Tests
|
||||
run: |
|
||||
flutter test --coverage
|
||||
fvm flutter test --coverage
|
||||
|
||||
- name: Coveralls
|
||||
uses: coverallsapp/github-action@master
|
||||
|
|
|
|||
12
.github/workflows/ios.yaml
vendored
12
.github/workflows/ios.yaml
vendored
|
|
@ -3,6 +3,9 @@
|
|||
name: iOS
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
|
@ -33,7 +36,7 @@ jobs:
|
|||
with:
|
||||
flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }}
|
||||
channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }}
|
||||
cache: true
|
||||
cache: false
|
||||
cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:"
|
||||
cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:"
|
||||
pub-cache-key: "flutter-pub:os:-:channel:-:version:-:arch:-:hash:"
|
||||
|
|
@ -46,9 +49,12 @@ jobs:
|
|||
|
||||
- name: Build for iOS
|
||||
run: |
|
||||
flutter pub get
|
||||
dart pub global activate fvm
|
||||
fvm install
|
||||
fvm flutter pub get
|
||||
fvm flutter precache --ios
|
||||
cd ios
|
||||
pod repo update
|
||||
pod install
|
||||
cd ..
|
||||
flutter build ios --release --no-codesign --no-tree-shake-icons
|
||||
fvm flutter build ios --release --no-codesign --no-tree-shake-icons
|
||||
|
|
|
|||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -8,6 +8,8 @@
|
|||
.buildlog/
|
||||
.history
|
||||
.svn/
|
||||
.direnv
|
||||
flake.nix.bak
|
||||
|
||||
coverage/*
|
||||
|
||||
|
|
|
|||
47
NOTE.md
Normal file
47
NOTE.md
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
## Codeänderung
|
||||
|
||||
- android/app/build.gradle: compileSdkVersion/targetSdkVersion auf 36 angehoben,
|
||||
weil mehrere Plugins SDK 36 voraussetzen.
|
||||
|
||||
## Devbuild (out of the box)
|
||||
|
||||
```sh
|
||||
invoke translate
|
||||
flutter build apk --debug
|
||||
```
|
||||
|
||||
## Releasebuild (benötigt Signatur; interaktiv)
|
||||
|
||||
Signatur erstellen; Passwörter merken!:
|
||||
|
||||
```sh
|
||||
keytool -genkey -v -keystore ~/inventree-release-key.jks \
|
||||
-keyalg RSA -keysize 2048 \
|
||||
-alias inventree
|
||||
```
|
||||
|
||||
android/key.properties anlegen mit:
|
||||
|
||||
```properties
|
||||
storePassword=DEIN_STORE_PASSWORD
|
||||
keyPassword=DEIN_KEY_PASSWORD
|
||||
keyAlias=inventree
|
||||
storeFile=/.../inventree-release-key.jks
|
||||
```
|
||||
|
||||
```sh
|
||||
invoke translate
|
||||
fvm flutter build apk --release --no-tree-shake-icons
|
||||
```
|
||||
|
||||
## Pipe
|
||||
|
||||
1. nix installieren (für flake nutzung) (optional aber dann reproduzierbar)
|
||||
2. flake anwenden
|
||||
|
||||
## Problems that occurred
|
||||
|
||||
### Flutter Java Version Problem
|
||||
|
||||
- unset flutter jdk-dir (`flutter config --jdk-dir=""`)
|
||||
- a specified java version in the flutter config leads to a java
|
||||
|
|
@ -10,6 +10,7 @@ Thanks to the following contributors, for their work building this app!
|
|||
- [Bobbe](https://github.com/30350n)
|
||||
- [awnz](https://github.com/awnz)
|
||||
- [joaomnuno](https://github.com/joaomnuno)
|
||||
- [Alex9779](https://github.com/Alex9779)
|
||||
--------
|
||||
|
||||
## Assets
|
||||
|
|
|
|||
|
|
@ -1,3 +1,46 @@
|
|||
### x.xx.x - Month Year
|
||||
---
|
||||
|
||||
- Fixes bug which launched camera twice when uploading an attachment
|
||||
|
||||
### 0.21.1 - November 2025
|
||||
---
|
||||
|
||||
- Fixed app freeze bug after form submission
|
||||
|
||||
### 0.21.0 - November 2025
|
||||
---
|
||||
|
||||
- Support label printing again, fixing issues with new printing API
|
||||
- Adds zoom controller for barcode scanner camera view
|
||||
- Display default stock location in Part detail page
|
||||
- Display stock information in SupplierPart detail page
|
||||
|
||||
### 0.20.2 - November 2025
|
||||
---
|
||||
|
||||
- Fixes URL for reporting issues on GitHub
|
||||
- Fix for uploading files against server with self-signed certificates
|
||||
|
||||
### 0.20.1 - October 2025
|
||||
---
|
||||
|
||||
- Bug fix for camera barcode scanner
|
||||
|
||||
### 0.20.0 - October 2025
|
||||
---
|
||||
|
||||
- View pending shipments from the home screen
|
||||
- Display detail view for shipments
|
||||
- Adds ability to ship pending outgoing shipments
|
||||
- Adds ability to mark outgoing shipments as "checked" or "unchecked"
|
||||
- Updated translations
|
||||
|
||||
### 0.19.3 - September 2025
|
||||
---
|
||||
|
||||
- Fixes incorrect priority of barcode scanner results
|
||||
|
||||
### 0.19.2 - August 2025
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ from pathlib import Path
|
|||
if __name__ == "__main__":
|
||||
dart_files = Path("lib").rglob("*.dart")
|
||||
|
||||
print("Discovering dart files...");
|
||||
|
||||
with open("test/coverage_helper_test.dart", "w") as f:
|
||||
f.write("// ignore_for_file: unused_import\n\n")
|
||||
f.write("// dart format off\n\n")
|
||||
|
|
|
|||
78
flake.lock
generated
Normal file
78
flake.lock
generated
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1767892417,
|
||||
"narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-flutter": {
|
||||
"locked": {
|
||||
"lastModified": 1751285371,
|
||||
"narHash": "sha256-/hDU+2AUeFFu5qGHO/UyFMc4UG/x5Cw5uXO36KGTk6c=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b9c03fbbaf84d85bb28eee530c7e9edc4021ca1b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b9c03fbbaf84d85bb28eee530c7e9edc4021ca1b",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-flutter": "nixpkgs-flutter"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
137
flake.nix
Normal file
137
flake.nix
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
{
|
||||
description = "InvenTree App Development Environment - CTBK";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
nixpkgs-flutter.url = "github:NixOS/nixpkgs/b9c03fbbaf84d85bb28eee530c7e9edc4021ca1b";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
nixpkgs-flutter,
|
||||
}:
|
||||
flake-utils.lib.eachDefaultSystem (
|
||||
system:
|
||||
let
|
||||
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
android_sdk.accept_license = true;
|
||||
};
|
||||
overlays = [
|
||||
(final: prev: {
|
||||
flutter-pkg = import (self.inputs.nixpkgs-flutter) { inherit system; };
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
androidSdk =
|
||||
(pkgs.androidenv.composeAndroidPackages {
|
||||
platformVersions = [
|
||||
"36"
|
||||
"35"
|
||||
"34"
|
||||
];
|
||||
buildToolsVersions = [
|
||||
"36.0.0"
|
||||
"34.0.0"
|
||||
];
|
||||
includeEmulator = true;
|
||||
includeNDK = true;
|
||||
ndkVersions = [ "26.1.10909125" ];
|
||||
cmakeVersions = [
|
||||
"3.31.6"
|
||||
"3.22.1"
|
||||
];
|
||||
}).androidsdk;
|
||||
|
||||
# FVM wrapper for NixOS - maps fvm commands to Nix-managed Flutter
|
||||
fvm-wrapper = pkgs.writeShellScriptBin "fvm" ''
|
||||
case "$1" in
|
||||
use)
|
||||
# 'fvm use' is a no-op on NixOS since Flutter is version-managed by Nix
|
||||
echo "✓ Using Flutter from Nix ($(flutter --version | head -n1))"
|
||||
exit 0
|
||||
;;
|
||||
flutter)
|
||||
# 'fvm flutter ...' becomes 'flutter ...'
|
||||
shift
|
||||
exec flutter "$@"
|
||||
;;
|
||||
*)
|
||||
echo "fvm wrapper: command '$1' not implemented (using Nix-managed Flutter)" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
'';
|
||||
in
|
||||
{
|
||||
devShells.default = pkgs.mkShell {
|
||||
buildInputs =
|
||||
with pkgs;
|
||||
[
|
||||
# Mobile development
|
||||
pkgs.flutter-pkg.flutter
|
||||
fvm-wrapper
|
||||
jdk17
|
||||
|
||||
# Build tools
|
||||
android-tools
|
||||
gradle
|
||||
|
||||
# Python & task runner
|
||||
python3
|
||||
python3Packages.invoke
|
||||
jq
|
||||
|
||||
# System dependencies for Flutter on Linux
|
||||
git
|
||||
curl
|
||||
unzip
|
||||
which
|
||||
]
|
||||
++ lib.optionals stdenv.isLinux [
|
||||
gtk3
|
||||
glib
|
||||
pcre
|
||||
libepoxy
|
||||
libxkbcommon
|
||||
dbus
|
||||
at-spi2-core
|
||||
file
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
export ANDROID_HOME="${androidSdk}/libexec/android-sdk"
|
||||
export ANDROID_SDK_ROOT="$ANDROID_HOME"
|
||||
export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin:$PATH"
|
||||
export JAVA_HOME="${pkgs.jdk17}"
|
||||
export GRADLE_OPTS="-Dorg.gradle.project.android.aapt2FromMavenOverride=$ANDROID_HOME/build-tools/34.0.0/aapt2"
|
||||
|
||||
echo "🚀 InvenTree App Development Environment - CTBK"
|
||||
echo "📦 Tools: Flutter, FVM, JDK17, Android SDK"
|
||||
echo "📋 Run: invoke android # Build Android app"
|
||||
'';
|
||||
|
||||
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath (
|
||||
with pkgs;
|
||||
[
|
||||
gtk3
|
||||
glib
|
||||
pcre
|
||||
libepoxy
|
||||
libxkbcommon
|
||||
dbus
|
||||
at-spi2-core
|
||||
]
|
||||
);
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
62
lib/api.dart
62
lib/api.dart
|
|
@ -4,8 +4,10 @@ import "dart:io";
|
|||
|
||||
import "package:flutter/foundation.dart";
|
||||
import "package:http/http.dart" as http;
|
||||
import "package:http/io_client.dart";
|
||||
import "package:intl/intl.dart";
|
||||
import "package:inventree/main.dart";
|
||||
import "package:inventree/widget/progress.dart";
|
||||
import "package:one_context/one_context.dart";
|
||||
import "package:open_filex/open_filex.dart";
|
||||
import "package:cached_network_image/cached_network_image.dart";
|
||||
|
|
@ -279,6 +281,8 @@ class InvenTreeAPI {
|
|||
|
||||
String get username => (userInfo["username"] ?? "") as String;
|
||||
|
||||
int get userId => (userInfo["pk"] ?? -1) as int;
|
||||
|
||||
// Map of server information
|
||||
Map<String, dynamic> serverInfo = {};
|
||||
|
||||
|
|
@ -349,6 +353,10 @@ class InvenTreeAPI {
|
|||
// Supports separate search against "supplier" / "customer" / "manufacturer"
|
||||
bool get supportsSplitCompanySearch => apiVersion >= 315;
|
||||
|
||||
// Does the server support the "modern" (consolidated) parameter API?
|
||||
// Ref: https://github.com/inventree/InvenTree/pull/10699
|
||||
bool get supportsModernParameters => apiVersion >= 429;
|
||||
|
||||
// Cached list of plugins (refreshed when we connect to the server)
|
||||
List<InvenTreePlugin> _plugins = [];
|
||||
|
||||
|
|
@ -909,6 +917,8 @@ class InvenTreeAPI {
|
|||
|
||||
var client = createClient(url, strictHttps: strictHttps);
|
||||
|
||||
showLoadingOverlay();
|
||||
|
||||
// Attempt to open a connection to the server
|
||||
try {
|
||||
_request = await client
|
||||
|
|
@ -950,6 +960,7 @@ class InvenTreeAPI {
|
|||
await localFile.writeAsBytes(bytes);
|
||||
|
||||
if (openOnDownload) {
|
||||
hideLoadingOverlay();
|
||||
OpenFilex.open(local_path);
|
||||
}
|
||||
} else {
|
||||
|
|
@ -969,6 +980,8 @@ class InvenTreeAPI {
|
|||
stackTrace,
|
||||
);
|
||||
}
|
||||
|
||||
hideLoadingOverlay();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -981,12 +994,23 @@ class InvenTreeAPI {
|
|||
String method = "POST",
|
||||
Map<String, dynamic>? fields,
|
||||
}) async {
|
||||
var _url = makeApiUrl(url);
|
||||
bool strictHttps = await InvenTreeSettingsManager().getBool(
|
||||
INV_STRICT_HTTPS,
|
||||
false,
|
||||
);
|
||||
|
||||
var request = http.MultipartRequest(method, Uri.parse(_url));
|
||||
// Create an IOClient wrapper for sending the MultipartRequest
|
||||
final ioClient = IOClient(createClient(url, strictHttps: strictHttps));
|
||||
|
||||
request.headers.addAll(defaultHeaders());
|
||||
final uri = Uri.parse(makeApiUrl(url));
|
||||
final request = http.MultipartRequest(method, uri);
|
||||
|
||||
// Default headers
|
||||
defaultHeaders().forEach((key, value) {
|
||||
request.headers[key] = value;
|
||||
});
|
||||
|
||||
// Optional fields
|
||||
if (fields != null) {
|
||||
fields.forEach((String key, dynamic value) {
|
||||
if (value == null) {
|
||||
|
|
@ -997,20 +1021,24 @@ class InvenTreeAPI {
|
|||
});
|
||||
}
|
||||
|
||||
// Add file to upload
|
||||
var _file = await http.MultipartFile.fromPath(name, f.path);
|
||||
|
||||
request.files.add(_file);
|
||||
|
||||
// Construct a response object to return
|
||||
APIResponse response = APIResponse(url: url, method: method);
|
||||
|
||||
String jsondata = "";
|
||||
|
||||
try {
|
||||
var httpResponse = await request.send().timeout(Duration(seconds: 120));
|
||||
var streamedResponse = await ioClient
|
||||
.send(request)
|
||||
.timeout(Duration(seconds: 120));
|
||||
final httpResponse = await http.Response.fromStream(streamedResponse);
|
||||
|
||||
response.statusCode = httpResponse.statusCode;
|
||||
|
||||
jsondata = await httpResponse.stream.bytesToString();
|
||||
jsondata = httpResponse.body;
|
||||
|
||||
response.data = json.decode(jsondata);
|
||||
|
||||
|
|
@ -1067,8 +1095,15 @@ class InvenTreeAPI {
|
|||
* We send this with the currently selected "locale",
|
||||
* so that (hopefully) the field messages are correctly translated
|
||||
*/
|
||||
Future<APIResponse> options(String url) async {
|
||||
HttpClientRequest? request = await apiRequest(url, "OPTIONS");
|
||||
Future<APIResponse> options(
|
||||
String url, {
|
||||
Map<String, String> params = const {},
|
||||
}) async {
|
||||
HttpClientRequest? request = await apiRequest(
|
||||
url,
|
||||
"OPTIONS",
|
||||
urlParams: params,
|
||||
);
|
||||
|
||||
if (request == null) {
|
||||
// Return an "invalid" APIResponse
|
||||
|
|
@ -1543,8 +1578,15 @@ class InvenTreeAPI {
|
|||
return CachedNetworkImage(
|
||||
imageUrl: url,
|
||||
placeholder: (context, url) => CircularProgressIndicator(),
|
||||
errorWidget: (context, url, error) =>
|
||||
Icon(TablerIcons.circle_x, color: COLOR_DANGER),
|
||||
errorWidget: (context, url, error) {
|
||||
print("CachedNetworkimage error: ${error.toString()}");
|
||||
return GestureDetector(
|
||||
child: Icon(TablerIcons.circle_x, color: COLOR_DANGER),
|
||||
onTap: () => {
|
||||
showSnackIcon(error.toString().split(",")[0], success: false),
|
||||
},
|
||||
);
|
||||
},
|
||||
httpHeaders: defaultHeaders(),
|
||||
height: height,
|
||||
width: width,
|
||||
|
|
|
|||
|
|
@ -26,23 +26,52 @@ import "package:inventree/widget/fields.dart";
|
|||
import "package:inventree/widget/progress.dart";
|
||||
import "package:inventree/widget/snacks.dart";
|
||||
|
||||
/*
|
||||
* Extract field options from a returned OPTIONS request
|
||||
*/
|
||||
Map<String, dynamic> extractFields(APIResponse response) {
|
||||
if (!response.isValid()) {
|
||||
return {};
|
||||
}
|
||||
|
||||
var data = response.asMap();
|
||||
|
||||
if (!data.containsKey("actions")) {
|
||||
return {};
|
||||
}
|
||||
|
||||
var actions = response.data["actions"] as Map<String, dynamic>;
|
||||
|
||||
dynamic result = actions["POST"] ?? actions["PUT"] ?? actions["PATCH"] ?? {};
|
||||
|
||||
return result as Map<String, dynamic>;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class that represents a single "form field",
|
||||
* defined by the InvenTree API
|
||||
*/
|
||||
class APIFormField {
|
||||
// Constructor
|
||||
APIFormField(this.name, this.data);
|
||||
APIFormField(this.name, this.data, {this.formHandler});
|
||||
|
||||
// File to be uploaded for this filed
|
||||
File? attachedfile;
|
||||
|
||||
APIFormWidgetState? formHandler;
|
||||
|
||||
// Name of this field
|
||||
final String name;
|
||||
|
||||
// JSON data which defines the field
|
||||
final Map<String, dynamic> data;
|
||||
|
||||
// Function to update the value of this field
|
||||
void setFieldValue(dynamic val) {
|
||||
data["value"] = val;
|
||||
formHandler?.onValueChanged(name, value);
|
||||
}
|
||||
|
||||
// JSON field definition provided by the server
|
||||
Map<String, dynamic> definition = {};
|
||||
|
||||
|
|
@ -88,6 +117,8 @@ class APIFormField {
|
|||
}
|
||||
}
|
||||
|
||||
String get pk_field => (getParameter("pk_field") ?? "pk") as String;
|
||||
|
||||
// Get the "api_url" associated with a related field
|
||||
String get api_url => (getParameter("api_url") ?? "") as String;
|
||||
|
||||
|
|
@ -244,18 +275,13 @@ class APIFormField {
|
|||
return;
|
||||
}
|
||||
|
||||
int? pk = int.tryParse(value.toString());
|
||||
|
||||
if (pk == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
String url = api_url + "/" + pk.toString() + "/";
|
||||
String url = api_url + "/" + value.toString() + "/";
|
||||
|
||||
final APIResponse response = await InvenTreeAPI().get(url, params: filters);
|
||||
|
||||
if (response.successful()) {
|
||||
initial_data = response.data;
|
||||
formHandler?.onValueChanged(name, value);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -269,6 +295,7 @@ class APIFormField {
|
|||
return _constructBoolean();
|
||||
case "related field":
|
||||
return _constructRelatedField();
|
||||
case "integer":
|
||||
case "float":
|
||||
case "decimal":
|
||||
return _constructFloatField();
|
||||
|
|
@ -318,8 +345,7 @@ class APIFormField {
|
|||
onPressed: () async {
|
||||
var handler = UniqueBarcodeHandler((String hash) {
|
||||
controller.text = hash;
|
||||
data["value"] = hash;
|
||||
|
||||
setFieldValue(hash);
|
||||
barcodeSuccess(L10().barcodeAssigned);
|
||||
});
|
||||
|
||||
|
|
@ -347,9 +373,9 @@ class APIFormField {
|
|||
onChanged: (DateTime? time) {
|
||||
// Save the time string
|
||||
if (time == null) {
|
||||
data["value"] = null;
|
||||
setFieldValue(null);
|
||||
} else {
|
||||
data["value"] = time.toString().split(" ").first;
|
||||
setFieldValue(time.toString().split(" ").first);
|
||||
}
|
||||
},
|
||||
onShowPicker: (context, value) async {
|
||||
|
|
@ -432,9 +458,9 @@ class APIFormField {
|
|||
},
|
||||
onSaved: (item) {
|
||||
if (item == null) {
|
||||
data["value"] = null;
|
||||
setFieldValue(null);
|
||||
} else {
|
||||
data["value"] = item["value"];
|
||||
setFieldValue(item["value"]);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
|
@ -481,7 +507,7 @@ class APIFormField {
|
|||
return null;
|
||||
},
|
||||
onSaved: (val) {
|
||||
data["value"] = val;
|
||||
setFieldValue(val);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
@ -527,7 +553,20 @@ class APIFormField {
|
|||
hintText: helpText,
|
||||
),
|
||||
),
|
||||
onChanged: null,
|
||||
onChanged: (item) {
|
||||
if (item != null) {
|
||||
setFieldValue(item[pk_field]);
|
||||
} else {
|
||||
setFieldValue(null);
|
||||
}
|
||||
},
|
||||
onSaved: (item) {
|
||||
if (item != null) {
|
||||
setFieldValue(item[pk_field]);
|
||||
} else {
|
||||
setFieldValue(null);
|
||||
}
|
||||
},
|
||||
itemAsString: (dynamic item) {
|
||||
Map<String, dynamic> data = item as Map<String, dynamic>;
|
||||
|
||||
|
|
@ -551,13 +590,6 @@ class APIFormField {
|
|||
dropdownBuilder: (context, item) {
|
||||
return _renderRelatedField(name, item, true, false);
|
||||
},
|
||||
onSaved: (item) {
|
||||
if (item != null) {
|
||||
data["value"] = item["pk"];
|
||||
} else {
|
||||
data["value"] = null;
|
||||
}
|
||||
},
|
||||
compareFn: (dynamic item, dynamic selectedItem) {
|
||||
// Comparison is based on the PK value
|
||||
|
||||
|
|
@ -568,7 +600,8 @@ class APIFormField {
|
|||
bool result = false;
|
||||
|
||||
try {
|
||||
result = item["pk"].toString() == selectedItem["pk"].toString();
|
||||
result =
|
||||
item[pk_field].toString() == selectedItem[pk_field].toString();
|
||||
} catch (error) {
|
||||
// Catch any conversion errors
|
||||
result = false;
|
||||
|
|
@ -586,6 +619,8 @@ class APIFormField {
|
|||
return InvenTreeSupplierPart().defaultListFilters();
|
||||
case InvenTreeStockItem.MODEL_TYPE:
|
||||
return InvenTreeStockItem().defaultListFilters();
|
||||
case InvenTreeSalesOrder.MODEL_TYPE:
|
||||
return InvenTreeSalesOrder().defaultListFilters();
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -727,7 +762,7 @@ class APIFormField {
|
|||
return ListTile(
|
||||
title: Text(shipment.reference),
|
||||
subtitle: Text(shipment.tracking_number),
|
||||
trailing: shipment.shipped ? Text(shipment.shipment_date!) : null,
|
||||
trailing: shipment.isShipped ? Text(shipment.shipment_date!) : null,
|
||||
);
|
||||
case "owner":
|
||||
String name = (data["name"] ?? "") as String;
|
||||
|
|
@ -754,6 +789,27 @@ class APIFormField {
|
|||
subtitle: Text(project_code.description),
|
||||
leading: Icon(TablerIcons.list),
|
||||
);
|
||||
case InvenTreeSalesOrder.MODEL_TYPE:
|
||||
var so = InvenTreeSalesOrder.fromJson(data);
|
||||
return ListTile(
|
||||
title: Text(so.reference),
|
||||
subtitle: Text(so.description),
|
||||
leading: InvenTreeAPI().getThumbnail(
|
||||
so.customer?.thumbnail ?? so.customer?.image ?? "",
|
||||
),
|
||||
);
|
||||
case "labeltemplate":
|
||||
return ListTile(
|
||||
title: Text((data["name"] ?? "").toString()),
|
||||
subtitle: Text((data["description"] ?? "").toString()),
|
||||
);
|
||||
case "pluginconfig":
|
||||
return ListTile(
|
||||
title: Text(
|
||||
(data["meta"]?["human_name"] ?? data["name"] ?? "").toString(),
|
||||
),
|
||||
subtitle: Text((data["meta"]?["description"] ?? "").toString()),
|
||||
);
|
||||
default:
|
||||
return ListTile(
|
||||
title: Text(
|
||||
|
|
@ -799,8 +855,11 @@ class APIFormField {
|
|||
maxLines: multiline ? null : 1,
|
||||
expands: false,
|
||||
initialValue: (value ?? "") as String,
|
||||
onChanged: (val) {
|
||||
setFieldValue(val);
|
||||
},
|
||||
onSaved: (val) {
|
||||
data["value"] = val;
|
||||
setFieldValue(val);
|
||||
},
|
||||
validator: (value) {
|
||||
if (required && (value == null || value.isEmpty)) {
|
||||
|
|
@ -831,7 +890,7 @@ class APIFormField {
|
|||
initial: initial_value,
|
||||
tristate: (getParameter("tristate") ?? false) as bool,
|
||||
onSaved: (val) {
|
||||
data["value"] = val;
|
||||
setFieldValue(val);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
@ -854,27 +913,6 @@ class APIFormField {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Extract field options from a returned OPTIONS request
|
||||
*/
|
||||
Map<String, dynamic> extractFields(APIResponse response) {
|
||||
if (!response.isValid()) {
|
||||
return {};
|
||||
}
|
||||
|
||||
var data = response.asMap();
|
||||
|
||||
if (!data.containsKey("actions")) {
|
||||
return {};
|
||||
}
|
||||
|
||||
var actions = response.data["actions"] as Map<String, dynamic>;
|
||||
|
||||
dynamic result = actions["POST"] ?? actions["PUT"] ?? actions["PATCH"] ?? {};
|
||||
|
||||
return result as Map<String, dynamic>;
|
||||
}
|
||||
|
||||
/*
|
||||
* Extract a field definition (map) from the provided JSON data.
|
||||
*
|
||||
|
|
@ -970,6 +1008,7 @@ Future<void> launchApiForm(
|
|||
Function(Map<String, dynamic>)? onSuccess,
|
||||
bool Function(Map<String, dynamic>)? validate,
|
||||
Function? onCancel,
|
||||
APIFormWidgetState? formHandler,
|
||||
IconData icon = TablerIcons.device_floppy,
|
||||
}) async {
|
||||
showLoadingOverlay();
|
||||
|
|
@ -1030,7 +1069,7 @@ Future<void> launchApiForm(
|
|||
field.data["instance_value"] = model_value;
|
||||
|
||||
if (field.data["value"] == null) {
|
||||
field.data["value"] = model_value;
|
||||
field.setFieldValue(model_value);
|
||||
}
|
||||
}
|
||||
formFields.add(field);
|
||||
|
|
@ -1055,6 +1094,7 @@ Future<void> launchApiForm(
|
|||
onSuccess: onSuccess,
|
||||
validate: validate,
|
||||
fileField: fileField,
|
||||
state: formHandler,
|
||||
icon: icon,
|
||||
),
|
||||
),
|
||||
|
|
@ -1068,6 +1108,7 @@ class APIFormWidget extends StatefulWidget {
|
|||
this.fields,
|
||||
this.method, {
|
||||
Key? key,
|
||||
this.state,
|
||||
this.onSuccess,
|
||||
this.validate,
|
||||
this.fileField = "",
|
||||
|
|
@ -1094,12 +1135,15 @@ class APIFormWidget extends StatefulWidget {
|
|||
|
||||
final bool Function(Map<String, dynamic>)? validate;
|
||||
|
||||
final APIFormWidgetState? state;
|
||||
|
||||
// Default form handler is constructed if none is provided
|
||||
@override
|
||||
_APIFormWidgetState createState() => _APIFormWidgetState();
|
||||
APIFormWidgetState createState() => state ?? APIFormWidgetState();
|
||||
}
|
||||
|
||||
class _APIFormWidgetState extends State<APIFormWidget> {
|
||||
_APIFormWidgetState() : super();
|
||||
class APIFormWidgetState extends State<APIFormWidget> {
|
||||
APIFormWidgetState() : super();
|
||||
|
||||
final _formKey = GlobalKey<FormState>();
|
||||
|
||||
|
|
@ -1107,6 +1151,33 @@ class _APIFormWidgetState extends State<APIFormWidget> {
|
|||
|
||||
bool spacerRequired = false;
|
||||
|
||||
// Return a list of all fields used for this form
|
||||
// The default implementation just returns the fields provided to the widget
|
||||
// However, custom form implementations may override this function
|
||||
List<APIFormField> get formFields {
|
||||
final List<APIFormField> fields = widget.fields;
|
||||
|
||||
// Ensure each field has access to this form handler
|
||||
for (var field in fields) {
|
||||
field.formHandler ??= this;
|
||||
}
|
||||
|
||||
return fields;
|
||||
}
|
||||
|
||||
// Callback for when a field value is changed
|
||||
// Default implementation does nothing,
|
||||
// but custom form implementations may override this function
|
||||
void onValueChanged(String field, dynamic value) {}
|
||||
|
||||
Future<void> handleSuccess(
|
||||
Map<String, dynamic> submittedData,
|
||||
Map<String, dynamic> responseData,
|
||||
) async {
|
||||
Navigator.pop(context);
|
||||
widget.onSuccess?.call(responseData);
|
||||
}
|
||||
|
||||
List<Widget> _buildForm() {
|
||||
List<Widget> widgets = [];
|
||||
|
||||
|
|
@ -1124,7 +1195,7 @@ class _APIFormWidgetState extends State<APIFormWidget> {
|
|||
widgets.add(Divider(height: 5));
|
||||
}
|
||||
|
||||
for (var field in widget.fields) {
|
||||
for (var field in formFields) {
|
||||
if (field.hidden) {
|
||||
continue;
|
||||
}
|
||||
|
|
@ -1179,7 +1250,7 @@ class _APIFormWidgetState extends State<APIFormWidget> {
|
|||
// Pop the "file" field
|
||||
data.remove(widget.fileField);
|
||||
|
||||
for (var field in widget.fields) {
|
||||
for (var field in formFields) {
|
||||
if (field.name == widget.fileField) {
|
||||
File? file = field.attachedfile;
|
||||
|
||||
|
|
@ -1264,7 +1335,7 @@ class _APIFormWidgetState extends State<APIFormWidget> {
|
|||
match = true;
|
||||
continue;
|
||||
default:
|
||||
for (var field in widget.fields) {
|
||||
for (var field in formFields) {
|
||||
// Hidden fields can't display errors, so we won't match
|
||||
if (field.hidden) {
|
||||
continue;
|
||||
|
|
@ -1316,7 +1387,7 @@ class _APIFormWidgetState extends State<APIFormWidget> {
|
|||
|
||||
// Iterate through and find "simple" top-level fields
|
||||
|
||||
for (var field in widget.fields) {
|
||||
for (var field in formFields) {
|
||||
if (field.readOnly) {
|
||||
continue;
|
||||
}
|
||||
|
|
@ -1355,20 +1426,11 @@ class _APIFormWidgetState extends State<APIFormWidget> {
|
|||
return;
|
||||
}
|
||||
|
||||
// Run custom onSuccess function
|
||||
var successFunc = widget.onSuccess;
|
||||
|
||||
// An "empty" URL means we don't want to submit the form anywhere
|
||||
// Perhaps we just want to process the data?
|
||||
if (widget.url.isEmpty) {
|
||||
// Hide the form
|
||||
Navigator.pop(context);
|
||||
|
||||
if (successFunc != null) {
|
||||
// Return the raw "submitted" data, rather than the server response
|
||||
successFunc(data);
|
||||
}
|
||||
|
||||
handleSuccess(data, {});
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1383,29 +1445,24 @@ class _APIFormWidgetState extends State<APIFormWidget> {
|
|||
case 200:
|
||||
case 201:
|
||||
// Form was successfully validated by the server
|
||||
|
||||
// Hide this form
|
||||
Navigator.pop(context);
|
||||
|
||||
if (successFunc != null) {
|
||||
// Ensure the response is a valid JSON structure
|
||||
Map<String, dynamic> json = {};
|
||||
|
||||
var data = response.asMap();
|
||||
var responseData = response.asMap();
|
||||
|
||||
for (String key in data.keys) {
|
||||
json[key.toString()] = data[key];
|
||||
for (String key in responseData.keys) {
|
||||
json[key.toString()] = responseData[key];
|
||||
}
|
||||
|
||||
successFunc(json);
|
||||
}
|
||||
handleSuccess(data, json);
|
||||
|
||||
return;
|
||||
case 400:
|
||||
// Form submission / validation error
|
||||
showSnackIcon(L10().formError, success: false);
|
||||
|
||||
// Update field errors
|
||||
for (var field in widget.fields) {
|
||||
for (var field in formFields) {
|
||||
field.extractErrorMessages(response);
|
||||
}
|
||||
|
||||
|
|
@ -1433,6 +1490,22 @@ class _APIFormWidgetState extends State<APIFormWidget> {
|
|||
});
|
||||
}
|
||||
|
||||
// Construct the internal form widget, based on the provided fields
|
||||
Widget buildForm(BuildContext context) {
|
||||
return Form(
|
||||
key: _formKey,
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: _buildForm(),
|
||||
),
|
||||
padding: EdgeInsets.all(16),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
|
|
@ -1452,18 +1525,7 @@ class _APIFormWidgetState extends State<APIFormWidget> {
|
|||
),
|
||||
],
|
||||
),
|
||||
body: Form(
|
||||
key: _formKey,
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: _buildForm(),
|
||||
),
|
||||
padding: EdgeInsets.all(16),
|
||||
),
|
||||
),
|
||||
body: buildForm(context),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -250,12 +250,12 @@ class BarcodeScanHandler extends BarcodeHandler {
|
|||
|
||||
// The following model types can be matched with barcodes
|
||||
List<String> validModels = [
|
||||
InvenTreePart.MODEL_TYPE,
|
||||
InvenTreeCompany.MODEL_TYPE,
|
||||
InvenTreeStockItem.MODEL_TYPE,
|
||||
InvenTreeStockLocation.MODEL_TYPE,
|
||||
InvenTreeSupplierPart.MODEL_TYPE,
|
||||
InvenTreeManufacturerPart.MODEL_TYPE,
|
||||
InvenTreePart.MODEL_TYPE,
|
||||
InvenTreeStockLocation.MODEL_TYPE,
|
||||
InvenTreeCompany.MODEL_TYPE,
|
||||
];
|
||||
|
||||
if (InvenTreeAPI().supportsOrderBarcodes) {
|
||||
|
|
|
|||
|
|
@ -41,8 +41,10 @@ class _CameraBarcodeControllerState extends InvenTreeBarcodeControllerState {
|
|||
|
||||
String scanned_code = "";
|
||||
|
||||
double zoomFactor = 0.0;
|
||||
|
||||
final MobileScannerController controller = MobileScannerController(
|
||||
autoZoom: true,
|
||||
autoZoom: false, // Disable autoZoom as we implement a manual slider
|
||||
);
|
||||
|
||||
@override
|
||||
|
|
@ -55,6 +57,7 @@ class _CameraBarcodeControllerState extends InvenTreeBarcodeControllerState {
|
|||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
controller.dispose();
|
||||
WakelockPlus.disable();
|
||||
}
|
||||
|
||||
|
|
@ -310,6 +313,60 @@ class _CameraBarcodeControllerState extends InvenTreeBarcodeControllerState {
|
|||
return SpeedDial(icon: Icons.more_horiz, children: actions);
|
||||
}
|
||||
|
||||
Widget zoomSlider() {
|
||||
return Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
bottom: 16,
|
||||
child: Center(
|
||||
child: Container(
|
||||
width: 225,
|
||||
height: 56,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.black.withValues(alpha: 0.3),
|
||||
borderRadius: BorderRadius.circular(28),
|
||||
),
|
||||
padding: EdgeInsets.symmetric(horizontal: 16),
|
||||
child: Row(
|
||||
children: [
|
||||
Icon(TablerIcons.zoom_out, color: Colors.white, size: 20),
|
||||
Expanded(
|
||||
child: Slider(
|
||||
value: zoomFactor,
|
||||
min: 0.0,
|
||||
max: 1.0,
|
||||
activeColor: Colors.white,
|
||||
inactiveColor: Colors.white.withValues(alpha: 0.3),
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
zoomFactor = value;
|
||||
controller.setZoomScale(value);
|
||||
});
|
||||
},
|
||||
onChangeStart: (value) async {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
scanning_paused = true;
|
||||
});
|
||||
}
|
||||
},
|
||||
onChangeEnd: (value) async {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
scanning_paused = false;
|
||||
});
|
||||
}
|
||||
},
|
||||
),
|
||||
),
|
||||
Icon(TablerIcons.zoom_in, color: Colors.white, size: 20),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
|
|
@ -332,6 +389,7 @@ class _CameraBarcodeControllerState extends InvenTreeBarcodeControllerState {
|
|||
Column(children: [Expanded(child: BarcodeReader(context))]),
|
||||
topCenterOverlay(),
|
||||
bottomCenterOverlay(),
|
||||
zoomSlider(),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
|
|
|||
176
lib/inventree/attachment.dart
Normal file
176
lib/inventree/attachment.dart
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
import "dart:io";
|
||||
|
||||
import "package:flutter/cupertino.dart";
|
||||
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
||||
import "package:inventree/api.dart";
|
||||
import "package:inventree/inventree/model.dart";
|
||||
import "package:inventree/inventree/sentry.dart";
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/widget/fields.dart";
|
||||
import "package:inventree/widget/snacks.dart";
|
||||
import "package:path/path.dart" as path;
|
||||
|
||||
class InvenTreeAttachment extends InvenTreeModel {
|
||||
// Class representing an "attachment" file
|
||||
InvenTreeAttachment() : super();
|
||||
|
||||
InvenTreeAttachment.fromJson(Map<String, dynamic> json)
|
||||
: super.fromJson(json);
|
||||
|
||||
@override
|
||||
InvenTreeAttachment createFromJson(Map<String, dynamic> json) =>
|
||||
InvenTreeAttachment.fromJson(json);
|
||||
|
||||
@override
|
||||
String get URL => "attachment/";
|
||||
|
||||
@override
|
||||
Map<String, Map<String, dynamic>> formFields() {
|
||||
Map<String, Map<String, dynamic>> fields = {"link": {}, "comment": {}};
|
||||
|
||||
if (!hasLink) {
|
||||
fields.remove("link");
|
||||
}
|
||||
|
||||
return fields;
|
||||
}
|
||||
|
||||
// The model type of the instance this attachment is associated with
|
||||
String get modelType => getString("model_type");
|
||||
|
||||
// The ID of the instance this attachment is associated with
|
||||
int get modelId => getInt("model_id");
|
||||
|
||||
String get attachment => getString("attachment");
|
||||
|
||||
bool get hasAttachment => attachment.isNotEmpty;
|
||||
|
||||
// Return the filename of the attachment
|
||||
String get filename {
|
||||
return attachment.split("/").last;
|
||||
}
|
||||
|
||||
IconData get icon {
|
||||
String fn = filename.toLowerCase();
|
||||
|
||||
if (fn.endsWith(".pdf")) {
|
||||
return TablerIcons.file_type_pdf;
|
||||
} else if (fn.endsWith(".csv")) {
|
||||
return TablerIcons.file_type_csv;
|
||||
} else if (fn.endsWith(".doc") || fn.endsWith(".docx")) {
|
||||
return TablerIcons.file_type_doc;
|
||||
} else if (fn.endsWith(".xls") || fn.endsWith(".xlsx")) {
|
||||
return TablerIcons.file_type_xls;
|
||||
}
|
||||
|
||||
// Image formats
|
||||
final List<String> img_formats = [".png", ".jpg", ".gif", ".bmp", ".svg"];
|
||||
|
||||
for (String fmt in img_formats) {
|
||||
if (fn.endsWith(fmt)) {
|
||||
return TablerIcons.file_type_jpg;
|
||||
}
|
||||
}
|
||||
|
||||
return TablerIcons.file;
|
||||
}
|
||||
|
||||
String get comment => getString("comment");
|
||||
|
||||
DateTime? get uploadDate {
|
||||
if (jsondata.containsKey("upload_date")) {
|
||||
return DateTime.tryParse((jsondata["upload_date"] ?? "") as String);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Return a count of how many attachments exist against the specified model ID
|
||||
Future<int> countAttachments(String modelType, int modelId) async {
|
||||
Map<String, String> filters = {};
|
||||
|
||||
if (!api.supportsModernAttachments) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
filters["model_type"] = modelType;
|
||||
filters["model_id"] = modelId.toString();
|
||||
|
||||
return count(filters: filters);
|
||||
}
|
||||
|
||||
Future<bool> uploadAttachment(
|
||||
File attachment,
|
||||
String modelType,
|
||||
int modelId, {
|
||||
String comment = "",
|
||||
Map<String, String> fields = const {},
|
||||
}) async {
|
||||
// Ensure that the correct reference field is set
|
||||
Map<String, String> data = Map<String, String>.from(fields);
|
||||
|
||||
String url = URL;
|
||||
|
||||
if (comment.isNotEmpty) {
|
||||
data["comment"] = comment;
|
||||
}
|
||||
|
||||
data["model_type"] = modelType;
|
||||
data["model_id"] = modelId.toString();
|
||||
|
||||
final APIResponse response = await InvenTreeAPI().uploadFile(
|
||||
url,
|
||||
attachment,
|
||||
method: "POST",
|
||||
name: "attachment",
|
||||
fields: data,
|
||||
);
|
||||
|
||||
return response.successful();
|
||||
}
|
||||
|
||||
Future<bool> uploadImage(
|
||||
String modelType,
|
||||
int modelId, {
|
||||
String prefix = "InvenTree",
|
||||
}) async {
|
||||
bool result = false;
|
||||
|
||||
await FilePickerDialog.pickImageFromCamera().then((File? file) {
|
||||
if (file != null) {
|
||||
String dir = path.dirname(file.path);
|
||||
String ext = path.extension(file.path);
|
||||
String now = DateTime.now().toIso8601String().replaceAll(":", "-");
|
||||
|
||||
// Rename the file with a unique name
|
||||
String filename = "${dir}/${prefix}_image_${now}${ext}";
|
||||
|
||||
try {
|
||||
return file.rename(filename).then((File renamed) {
|
||||
return uploadAttachment(renamed, modelType, modelId).then((
|
||||
success,
|
||||
) {
|
||||
result = success;
|
||||
showSnackIcon(
|
||||
result ? L10().imageUploadSuccess : L10().imageUploadFailure,
|
||||
success: result,
|
||||
);
|
||||
});
|
||||
});
|
||||
} catch (error, stackTrace) {
|
||||
sentryReportError("uploadImage", error, stackTrace);
|
||||
showSnackIcon(L10().imageUploadFailure, success: false);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Download this attachment file
|
||||
*/
|
||||
Future<void> downloadAttachment() async {
|
||||
await InvenTreeAPI().downloadFile(attachment);
|
||||
}
|
||||
}
|
||||
|
|
@ -111,31 +111,6 @@ class InvenTreeCompany extends InvenTreeModel {
|
|||
InvenTreeCompany.fromJson(json);
|
||||
}
|
||||
|
||||
/*
|
||||
* Class representing an attachment file against a Company object
|
||||
*/
|
||||
class InvenTreeCompanyAttachment extends InvenTreeAttachment {
|
||||
InvenTreeCompanyAttachment() : super();
|
||||
|
||||
InvenTreeCompanyAttachment.fromJson(Map<String, dynamic> json)
|
||||
: super.fromJson(json);
|
||||
|
||||
@override
|
||||
String get REFERENCE_FIELD => "company";
|
||||
|
||||
@override
|
||||
String get REF_MODEL_TYPE => "company";
|
||||
|
||||
@override
|
||||
String get URL => InvenTreeAPI().supportsModernAttachments
|
||||
? "attachment/"
|
||||
: "company/attachment/";
|
||||
|
||||
@override
|
||||
InvenTreeModel createFromJson(Map<String, dynamic> json) =>
|
||||
InvenTreeCompanyAttachment.fromJson(json);
|
||||
}
|
||||
|
||||
/*
|
||||
* The InvenTreeSupplierPart class represents the SupplierPart model in the InvenTree database
|
||||
*/
|
||||
|
|
@ -225,6 +200,10 @@ class InvenTreeSupplierPart extends InvenTreeModel {
|
|||
|
||||
int get partId => getInt("part");
|
||||
|
||||
double get inStock => getDouble("in_stock");
|
||||
|
||||
double get onOrder => getDouble("on_order");
|
||||
|
||||
String get partImage =>
|
||||
(jsondata["part_detail"]?["thumbnail"] ?? InvenTreeAPI.staticThumb)
|
||||
as String;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import "dart:async";
|
||||
import "dart:io";
|
||||
|
||||
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
||||
import "package:flutter/material.dart";
|
||||
|
|
@ -15,7 +14,6 @@ import "package:inventree/helpers.dart";
|
|||
import "package:inventree/inventree/sentry.dart";
|
||||
|
||||
import "package:inventree/widget/dialogs.dart";
|
||||
import "package:inventree/widget/fields.dart";
|
||||
|
||||
// Paginated response object
|
||||
class InvenTreePageResponse {
|
||||
|
|
@ -601,7 +599,7 @@ class InvenTreeModel {
|
|||
|
||||
// POST data to update the model
|
||||
Future<APIResponse> update({
|
||||
Map<String, String> values = const {},
|
||||
Map<String, dynamic> values = const {},
|
||||
int? expectedStatusCode = 200,
|
||||
}) async {
|
||||
var url = path.join(URL, pk.toString());
|
||||
|
|
@ -934,171 +932,3 @@ class InvenTreeUserSetting extends InvenTreeGlobalSetting {
|
|||
@override
|
||||
String get URL => "settings/user/";
|
||||
}
|
||||
|
||||
class InvenTreeAttachment extends InvenTreeModel {
|
||||
// Class representing an "attachment" file
|
||||
InvenTreeAttachment() : super();
|
||||
|
||||
InvenTreeAttachment.fromJson(Map<String, dynamic> json)
|
||||
: super.fromJson(json);
|
||||
|
||||
@override
|
||||
String get URL => "attachment/";
|
||||
|
||||
@override
|
||||
Map<String, Map<String, dynamic>> formFields() {
|
||||
Map<String, Map<String, dynamic>> fields = {"link": {}, "comment": {}};
|
||||
|
||||
if (!hasLink) {
|
||||
fields.remove("link");
|
||||
}
|
||||
|
||||
return fields;
|
||||
}
|
||||
|
||||
// Override this reference field for any subclasses
|
||||
// Note: This is used for the *legacy* attachment API
|
||||
String get REFERENCE_FIELD => "";
|
||||
|
||||
// Override this reference field for any subclasses
|
||||
// Note: This is used for the *modern* attachment API
|
||||
String get REF_MODEL_TYPE => "";
|
||||
|
||||
String get attachment => getString("attachment");
|
||||
|
||||
bool get hasAttachment => attachment.isNotEmpty;
|
||||
|
||||
// Return the filename of the attachment
|
||||
String get filename {
|
||||
return attachment.split("/").last;
|
||||
}
|
||||
|
||||
IconData get icon {
|
||||
String fn = filename.toLowerCase();
|
||||
|
||||
if (fn.endsWith(".pdf")) {
|
||||
return TablerIcons.file_type_pdf;
|
||||
} else if (fn.endsWith(".csv")) {
|
||||
return TablerIcons.file_type_csv;
|
||||
} else if (fn.endsWith(".doc") || fn.endsWith(".docx")) {
|
||||
return TablerIcons.file_type_doc;
|
||||
} else if (fn.endsWith(".xls") || fn.endsWith(".xlsx")) {
|
||||
return TablerIcons.file_type_xls;
|
||||
}
|
||||
|
||||
// Image formats
|
||||
final List<String> img_formats = [".png", ".jpg", ".gif", ".bmp", ".svg"];
|
||||
|
||||
for (String fmt in img_formats) {
|
||||
if (fn.endsWith(fmt)) {
|
||||
return TablerIcons.file_type_jpg;
|
||||
}
|
||||
}
|
||||
|
||||
return TablerIcons.file;
|
||||
}
|
||||
|
||||
String get comment => getString("comment");
|
||||
|
||||
DateTime? get uploadDate {
|
||||
if (jsondata.containsKey("upload_date")) {
|
||||
return DateTime.tryParse((jsondata["upload_date"] ?? "") as String);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Return a count of how many attachments exist against the specified model ID
|
||||
Future<int> countAttachments(int modelId) {
|
||||
Map<String, String> filters = {};
|
||||
|
||||
if (InvenTreeAPI().supportsModernAttachments) {
|
||||
filters["model_type"] = REF_MODEL_TYPE;
|
||||
filters["model_id"] = modelId.toString();
|
||||
} else {
|
||||
filters[REFERENCE_FIELD] = modelId.toString();
|
||||
}
|
||||
|
||||
return count(filters: filters);
|
||||
}
|
||||
|
||||
Future<bool> uploadAttachment(
|
||||
File attachment,
|
||||
int modelId, {
|
||||
String comment = "",
|
||||
Map<String, String> fields = const {},
|
||||
}) async {
|
||||
// Ensure that the correct reference field is set
|
||||
Map<String, String> data = Map<String, String>.from(fields);
|
||||
|
||||
String url = URL;
|
||||
|
||||
if (comment.isNotEmpty) {
|
||||
data["comment"] = comment;
|
||||
}
|
||||
|
||||
if (InvenTreeAPI().supportsModernAttachments) {
|
||||
url = "attachment/";
|
||||
data["model_id"] = modelId.toString();
|
||||
data["model_type"] = REF_MODEL_TYPE;
|
||||
} else {
|
||||
if (REFERENCE_FIELD.isEmpty) {
|
||||
sentryReportMessage(
|
||||
"uploadAttachment called with empty 'REFERENCE_FIELD'",
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
data[REFERENCE_FIELD] = modelId.toString();
|
||||
}
|
||||
|
||||
final APIResponse response = await InvenTreeAPI().uploadFile(
|
||||
url,
|
||||
attachment,
|
||||
method: "POST",
|
||||
name: "attachment",
|
||||
fields: data,
|
||||
);
|
||||
|
||||
return response.successful();
|
||||
}
|
||||
|
||||
Future<bool> uploadImage(int modelId, {String prefix = "InvenTree"}) async {
|
||||
bool result = false;
|
||||
|
||||
await FilePickerDialog.pickImageFromCamera().then((File? file) {
|
||||
if (file != null) {
|
||||
String dir = path.dirname(file.path);
|
||||
String ext = path.extension(file.path);
|
||||
String now = DateTime.now().toIso8601String().replaceAll(":", "-");
|
||||
|
||||
// Rename the file with a unique name
|
||||
String filename = "${dir}/${prefix}_image_${now}${ext}";
|
||||
|
||||
try {
|
||||
file.rename(filename).then((File renamed) {
|
||||
uploadAttachment(renamed, modelId).then((success) {
|
||||
result = success;
|
||||
showSnackIcon(
|
||||
result ? L10().imageUploadSuccess : L10().imageUploadFailure,
|
||||
success: result,
|
||||
);
|
||||
});
|
||||
});
|
||||
} catch (error, stackTrace) {
|
||||
sentryReportError("uploadImage", error, stackTrace);
|
||||
showSnackIcon(L10().imageUploadFailure, success: false);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Download this attachment file
|
||||
*/
|
||||
Future<void> downloadAttachment() async {
|
||||
await InvenTreeAPI().downloadFile(attachment);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
77
lib/inventree/parameter.dart
Normal file
77
lib/inventree/parameter.dart
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
import "package:inventree/inventree/model.dart";
|
||||
|
||||
class InvenTreeParameter extends InvenTreeModel {
|
||||
InvenTreeParameter() : super();
|
||||
|
||||
InvenTreeParameter.fromJson(Map<String, dynamic> json) : super.fromJson(json);
|
||||
|
||||
@override
|
||||
InvenTreeParameter createFromJson(Map<String, dynamic> json) =>
|
||||
InvenTreeParameter.fromJson(json);
|
||||
|
||||
@override
|
||||
String get URL => "parameter/";
|
||||
|
||||
@override
|
||||
Map<String, Map<String, dynamic>> formFields() {
|
||||
Map<String, Map<String, dynamic>> fields = {
|
||||
"header": {
|
||||
"type": "string",
|
||||
"read_only": true,
|
||||
"label": name,
|
||||
"help_text": description,
|
||||
"value": "",
|
||||
},
|
||||
"data": {"type": "string"},
|
||||
"note": {},
|
||||
};
|
||||
|
||||
return fields;
|
||||
}
|
||||
|
||||
@override
|
||||
String get name => getString("name", subKey: "template_detail");
|
||||
|
||||
@override
|
||||
String get description => getString("description", subKey: "template_detail");
|
||||
|
||||
String get value => getString("data");
|
||||
|
||||
String get valueString {
|
||||
String v = value;
|
||||
|
||||
if (units.isNotEmpty) {
|
||||
v += " ";
|
||||
v += units;
|
||||
}
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
bool get as_bool => value.toLowerCase() == "true";
|
||||
|
||||
String get units => getString("units", subKey: "template_detail");
|
||||
|
||||
bool get is_checkbox =>
|
||||
getBool("checkbox", subKey: "template_detail", backup: false);
|
||||
|
||||
// The model type of the instance this attachment is associated with
|
||||
String get modelType => getString("model_type");
|
||||
|
||||
// The ID of the instance this attachment is associated with
|
||||
int get modelId => getInt("model_id");
|
||||
|
||||
// Return a count of how many parameters exist against the specified model ID
|
||||
Future<int> countParameters(String modelType, int modelId) async {
|
||||
Map<String, String> filters = {};
|
||||
|
||||
if (!api.supportsModernParameters) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
filters["model_type"] = modelType;
|
||||
filters["model_id"] = modelId.toString();
|
||||
|
||||
return count(filters: filters);
|
||||
}
|
||||
}
|
||||
|
|
@ -132,68 +132,6 @@ class InvenTreePartTestTemplate extends InvenTreeModel {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Class representing the PartParameter database model
|
||||
*/
|
||||
class InvenTreePartParameter extends InvenTreeModel {
|
||||
InvenTreePartParameter() : super();
|
||||
|
||||
InvenTreePartParameter.fromJson(Map<String, dynamic> json)
|
||||
: super.fromJson(json);
|
||||
|
||||
@override
|
||||
String get URL => "part/parameter/";
|
||||
|
||||
@override
|
||||
List<String> get rolesRequired => ["part"];
|
||||
|
||||
@override
|
||||
InvenTreeModel createFromJson(Map<String, dynamic> json) =>
|
||||
InvenTreePartParameter.fromJson(json);
|
||||
|
||||
@override
|
||||
Map<String, Map<String, dynamic>> formFields() {
|
||||
Map<String, Map<String, dynamic>> fields = {
|
||||
"header": {
|
||||
"type": "string",
|
||||
"read_only": true,
|
||||
"label": name,
|
||||
"help_text": description,
|
||||
"value": "",
|
||||
},
|
||||
"data": {"type": "string"},
|
||||
};
|
||||
|
||||
return fields;
|
||||
}
|
||||
|
||||
@override
|
||||
String get name => getString("name", subKey: "template_detail");
|
||||
|
||||
@override
|
||||
String get description => getString("description", subKey: "template_detail");
|
||||
|
||||
String get value => getString("data");
|
||||
|
||||
String get valueString {
|
||||
String v = value;
|
||||
|
||||
if (units.isNotEmpty) {
|
||||
v += " ";
|
||||
v += units;
|
||||
}
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
bool get as_bool => value.toLowerCase() == "true";
|
||||
|
||||
String get units => getString("units", subKey: "template_detail");
|
||||
|
||||
bool get is_checkbox =>
|
||||
getBool("checkbox", subKey: "template_detail", backup: false);
|
||||
}
|
||||
|
||||
/*
|
||||
* Class representing the Part database model
|
||||
*/
|
||||
|
|
@ -278,8 +216,6 @@ class InvenTreePart extends InvenTreeModel {
|
|||
|
||||
// Request pricing data for this part
|
||||
Future<InvenTreePartPricing?> getPricing() async {
|
||||
print("REQUEST PRICING FOR: ${pk}");
|
||||
|
||||
try {
|
||||
final response = await InvenTreeAPI().get("/api/part/${pk}/pricing/");
|
||||
if (response.isValid()) {
|
||||
|
|
@ -411,6 +347,8 @@ class InvenTreePart extends InvenTreeModel {
|
|||
|
||||
bool get isTrackable => getBool("trackable");
|
||||
|
||||
bool get isTestable => getBool("testable");
|
||||
|
||||
// Get the IPN (internal part number) for the Part instance
|
||||
String get IPN => getString("IPN");
|
||||
|
||||
|
|
@ -547,28 +485,3 @@ class InvenTreePartPricing extends InvenTreeModel {
|
|||
double? get saleHistoryMin => getDoubleOrNull("sale_history_min");
|
||||
double? get saleHistoryMax => getDoubleOrNull("sale_history_max");
|
||||
}
|
||||
|
||||
/*
|
||||
* Class representing an attachment file against a Part object
|
||||
*/
|
||||
class InvenTreePartAttachment extends InvenTreeAttachment {
|
||||
InvenTreePartAttachment() : super();
|
||||
|
||||
InvenTreePartAttachment.fromJson(Map<String, dynamic> json)
|
||||
: super.fromJson(json);
|
||||
|
||||
@override
|
||||
String get REFERENCE_FIELD => "part";
|
||||
|
||||
@override
|
||||
String get REF_MODEL_TYPE => "part";
|
||||
|
||||
@override
|
||||
String get URL => InvenTreeAPI().supportsModernAttachments
|
||||
? "attachment/"
|
||||
: "part/attachment/";
|
||||
|
||||
@override
|
||||
InvenTreeModel createFromJson(Map<String, dynamic> json) =>
|
||||
InvenTreePartAttachment.fromJson(json);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -336,28 +336,3 @@ class InvenTreePOExtraLineItem extends InvenTreeExtraLineItem {
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Class representing an attachment file against a PurchaseOrder object
|
||||
*/
|
||||
class InvenTreePurchaseOrderAttachment extends InvenTreeAttachment {
|
||||
InvenTreePurchaseOrderAttachment() : super();
|
||||
|
||||
InvenTreePurchaseOrderAttachment.fromJson(Map<String, dynamic> json)
|
||||
: super.fromJson(json);
|
||||
|
||||
@override
|
||||
String get REFERENCE_FIELD => "order";
|
||||
|
||||
@override
|
||||
String get REF_MODEL_TYPE => "purchaseorder";
|
||||
|
||||
@override
|
||||
String get URL => InvenTreeAPI().supportsModernAttachments
|
||||
? "attachment/"
|
||||
: "order/po/attachment/";
|
||||
|
||||
@override
|
||||
InvenTreeModel createFromJson(Map<String, dynamic> json) =>
|
||||
InvenTreePurchaseOrderAttachment.fromJson(json);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@ import "package:inventree/helpers.dart";
|
|||
import "package:inventree/inventree/company.dart";
|
||||
import "package:inventree/inventree/model.dart";
|
||||
import "package:inventree/inventree/orders.dart";
|
||||
import "package:inventree/inventree/part.dart";
|
||||
import "package:inventree/inventree/stock.dart";
|
||||
import "package:inventree/widget/order/so_shipment_detail.dart";
|
||||
import "package:inventree/widget/progress.dart";
|
||||
import "package:inventree/widget/order/extra_line_detail.dart";
|
||||
import "package:inventree/widget/order/sales_order_detail.dart";
|
||||
|
|
@ -269,6 +272,19 @@ class InvenTreeSalesOrderShipment extends InvenTreeModel {
|
|||
@override
|
||||
String get URL => "/order/so/shipment/";
|
||||
|
||||
String get SHIP_SHIPMENT_URL => "/order/so/shipment/${pk}/ship/";
|
||||
|
||||
@override
|
||||
Future<Object?> goToDetailPage(BuildContext context) async {
|
||||
return Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => SOShipmentDetailWidget(this)),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
List<String> get rolesRequired => ["sales_order"];
|
||||
|
||||
static const String MODEL_TYPE = "salesordershipment";
|
||||
|
||||
@override
|
||||
|
|
@ -284,6 +300,18 @@ class InvenTreeSalesOrderShipment extends InvenTreeModel {
|
|||
return fields;
|
||||
}
|
||||
|
||||
int get orderId => getInt("order");
|
||||
|
||||
InvenTreeSalesOrder? get order {
|
||||
dynamic order_detail = jsondata["order_detail"];
|
||||
|
||||
if (order_detail == null) {
|
||||
return null;
|
||||
} else {
|
||||
return InvenTreeSalesOrder.fromJson(order_detail as Map<String, dynamic>);
|
||||
}
|
||||
}
|
||||
|
||||
String get reference => getString("reference");
|
||||
|
||||
String get tracking_number => getString("tracking_number");
|
||||
|
|
@ -292,30 +320,111 @@ class InvenTreeSalesOrderShipment extends InvenTreeModel {
|
|||
|
||||
String? get shipment_date => getString("shipment_date");
|
||||
|
||||
bool get shipped => shipment_date != null && shipment_date!.isNotEmpty;
|
||||
String? get delivery_date => getString("delivery_date");
|
||||
|
||||
int? get checked_by_id => getInt("checked_by");
|
||||
|
||||
bool get isChecked => checked_by_id != null && checked_by_id! > 0;
|
||||
|
||||
bool get isShipped => shipment_date != null && shipment_date!.isNotEmpty;
|
||||
|
||||
bool get isDelivered => delivery_date != null && delivery_date!.isNotEmpty;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class representing an attachment file against a SalesOrder object
|
||||
* Class representing an allocation of stock against a SalesOrderShipment
|
||||
*/
|
||||
class InvenTreeSalesOrderAttachment extends InvenTreeAttachment {
|
||||
InvenTreeSalesOrderAttachment() : super();
|
||||
class InvenTreeSalesOrderAllocation extends InvenTreeModel {
|
||||
InvenTreeSalesOrderAllocation() : super();
|
||||
|
||||
InvenTreeSalesOrderAttachment.fromJson(Map<String, dynamic> json)
|
||||
InvenTreeSalesOrderAllocation.fromJson(Map<String, dynamic> json)
|
||||
: super.fromJson(json);
|
||||
|
||||
@override
|
||||
InvenTreeModel createFromJson(Map<String, dynamic> json) =>
|
||||
InvenTreeSalesOrderAttachment.fromJson(json);
|
||||
InvenTreeSalesOrderAllocation.fromJson(json);
|
||||
|
||||
@override
|
||||
String get REFERENCE_FIELD => "order";
|
||||
String get URL => "/order/so-allocation/";
|
||||
|
||||
@override
|
||||
String get REF_MODEL_TYPE => "salesorder";
|
||||
List<String> get rolesRequired => ["sales_order"];
|
||||
|
||||
@override
|
||||
String get URL => InvenTreeAPI().supportsModernAttachments
|
||||
? "attachment/"
|
||||
: "order/so/attachment/";
|
||||
Map<String, String> defaultFilters() {
|
||||
return {
|
||||
"part_detail": "true",
|
||||
"order_detail": "true",
|
||||
"item_detail": "true",
|
||||
"location_detail": "true",
|
||||
};
|
||||
}
|
||||
|
||||
static const String MODEL_TYPE = "salesorderallocation";
|
||||
|
||||
int get orderId => getInt("order");
|
||||
|
||||
InvenTreeSalesOrder? get order {
|
||||
dynamic order_detail = jsondata["order_detail"];
|
||||
|
||||
if (order_detail == null) {
|
||||
return null;
|
||||
} else {
|
||||
return InvenTreeSalesOrder.fromJson(order_detail as Map<String, dynamic>);
|
||||
}
|
||||
}
|
||||
|
||||
int get stockItemId => getInt("item");
|
||||
|
||||
InvenTreeStockItem? get stockItem {
|
||||
dynamic item_detail = jsondata["item_detail"];
|
||||
|
||||
if (item_detail == null) {
|
||||
return null;
|
||||
} else {
|
||||
return InvenTreeStockItem.fromJson(item_detail as Map<String, dynamic>);
|
||||
}
|
||||
}
|
||||
|
||||
int get partId => getInt("part");
|
||||
|
||||
InvenTreePart? get part {
|
||||
dynamic part_detail = jsondata["part_detail"];
|
||||
|
||||
if (part_detail == null) {
|
||||
return null;
|
||||
} else {
|
||||
return InvenTreePart.fromJson(part_detail as Map<String, dynamic>);
|
||||
}
|
||||
}
|
||||
|
||||
int get shipmentId => getInt("shipment");
|
||||
|
||||
bool get hasShipment => shipmentId > 0;
|
||||
|
||||
InvenTreeSalesOrderShipment? get shipment {
|
||||
dynamic shipment_detail = jsondata["shipment_detail"];
|
||||
|
||||
if (shipment_detail == null) {
|
||||
return null;
|
||||
} else {
|
||||
return InvenTreeSalesOrderShipment.fromJson(
|
||||
shipment_detail as Map<String, dynamic>,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
int get locationId => getInt("location");
|
||||
|
||||
InvenTreeStockLocation? get location {
|
||||
dynamic location_detail = jsondata["location_detail"];
|
||||
|
||||
if (location_detail == null) {
|
||||
return null;
|
||||
} else {
|
||||
return InvenTreeStockLocation.fromJson(
|
||||
location_detail as Map<String, dynamic>,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -575,31 +575,6 @@ class InvenTreeStockItem extends InvenTreeModel {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Class representing an attachment file against a StockItem object
|
||||
*/
|
||||
class InvenTreeStockItemAttachment extends InvenTreeAttachment {
|
||||
InvenTreeStockItemAttachment() : super();
|
||||
|
||||
InvenTreeStockItemAttachment.fromJson(Map<String, dynamic> json)
|
||||
: super.fromJson(json);
|
||||
|
||||
@override
|
||||
String get REFERENCE_FIELD => "stock_item";
|
||||
|
||||
@override
|
||||
String get REF_MODEL_TYPE => "stockitem";
|
||||
|
||||
@override
|
||||
String get URL => InvenTreeAPI().supportsModernAttachments
|
||||
? "attachment/"
|
||||
: "stock/attachment/";
|
||||
|
||||
@override
|
||||
InvenTreeModel createFromJson(Map<String, dynamic> json) =>
|
||||
InvenTreeStockItemAttachment.fromJson(json);
|
||||
}
|
||||
|
||||
class InvenTreeStockLocation extends InvenTreeModel {
|
||||
InvenTreeStockLocation() : super();
|
||||
|
||||
|
|
|
|||
|
|
@ -65,6 +65,9 @@
|
|||
"allocateStock": "Allocate Stock",
|
||||
"@allocateStock": {},
|
||||
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
|
||||
"appReleaseNotes": "Display app release notes",
|
||||
"@appReleaseNotes": {},
|
||||
|
||||
|
|
@ -145,7 +148,7 @@
|
|||
"barcodeScanPaused": "Barcode scanning paused",
|
||||
"@barodeScanPaused": {},
|
||||
|
||||
"barcodeScanPause": "Tap or hold to pause scanning",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
|
||||
"barcodeScanAssign": "Scan to assign barcode",
|
||||
|
|
@ -331,6 +334,15 @@
|
|||
"deleteFailed": "Delete operation failed",
|
||||
"@deleteFailed": {},
|
||||
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
|
||||
"deletePart": "Delete Part",
|
||||
"@deletePart": {},
|
||||
|
||||
|
|
@ -340,6 +352,9 @@
|
|||
"deleteSuccess": "Delete operation successful",
|
||||
"@deleteSuccess": {},
|
||||
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
|
||||
"description": "Description",
|
||||
"@description": {},
|
||||
|
||||
|
|
@ -548,6 +563,12 @@
|
|||
"homeShowPoDescription": "Show purchase order button on home screen",
|
||||
"@homeShowPoDescription": {},
|
||||
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
|
||||
"homeShowSo": "Show Sales Orders",
|
||||
"@homeShowSo": {},
|
||||
|
||||
|
|
@ -647,6 +668,12 @@
|
|||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"@invalidUsernamePassword": {},
|
||||
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
|
||||
|
|
@ -668,6 +695,12 @@
|
|||
"keywords": "Keywords",
|
||||
"@keywords": {},
|
||||
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
|
||||
"labelPrinting": "Label Printing",
|
||||
"@labelPrinting": {},
|
||||
|
||||
|
|
@ -692,7 +725,6 @@
|
|||
"languageSelect": "Select Language",
|
||||
"@languageSelect": {},
|
||||
|
||||
|
||||
"lastStocktake": "Last Stocktake",
|
||||
"@lastStocktake": {},
|
||||
|
||||
|
|
@ -726,6 +758,9 @@
|
|||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
|
||||
"locationNotSet": "No location specified",
|
||||
"@locationNotSet": {},
|
||||
|
||||
|
|
@ -769,6 +804,12 @@
|
|||
"@name": {
|
||||
},
|
||||
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
|
||||
"notConnected": "Not Connected",
|
||||
"@notConnected": {},
|
||||
|
||||
|
|
@ -792,6 +833,12 @@
|
|||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
|
||||
"noSubcategories": "No Subcategories",
|
||||
"@noSubcategories": {},
|
||||
|
||||
|
|
@ -927,6 +974,9 @@
|
|||
"passwordEmpty": "Password cannot be empty",
|
||||
"@passwordEmpty": {},
|
||||
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
|
||||
"permissionAccountDenied": "Your account does not have the required permissions to perform this action",
|
||||
"@permissionAccountDenied": {},
|
||||
|
||||
|
|
@ -1338,12 +1388,48 @@
|
|||
"serverNotSelected": "Server not selected",
|
||||
"@serverNotSelected": {},
|
||||
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
|
||||
|
|
@ -1555,6 +1641,9 @@
|
|||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1642,6 +1731,9 @@
|
|||
"website": "Website",
|
||||
"@website": {},
|
||||
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
|
||||
|
|
@ -1682,20 +1774,5 @@
|
|||
"@currency": {},
|
||||
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Allocate Stock",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Display app release notes",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "App Settings",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Barcode scanning paused",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tap or hold to pause scanning",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scan to assign barcode",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Companies",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configure server settings",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Delete operation failed",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Delete Part",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Remove this part from the database",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Delete operation successful",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Description",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Show purchase order button on home screen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Show Sales Orders",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Show sales order button on home screen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Keywords",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Label Printing",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Enable label printing",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No location specified",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stock location updated",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Name",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Not Connected",
|
||||
"@notConnected": {},
|
||||
"notes": "Notes",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "No Subcategories",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No subcategories available",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Password cannot be empty",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Your account does not have the required permissions to perform this action",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permission Required",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server not selected",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Allocate Stock",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Display app release notes",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "App Settings",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Barcode scanning paused",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tap or hold to pause scanning",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scan to assign barcode",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Companies",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configure server settings",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Delete operation failed",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Delete Part",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Remove this part from the database",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Delete operation successful",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Description",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Show purchase order button on home screen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Show Sales Orders",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Show sales order button on home screen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Keywords",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Label Printing",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Enable label printing",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No location specified",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stock location updated",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Name",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Not Connected",
|
||||
"@notConnected": {},
|
||||
"notes": "Notes",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "No Subcategories",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No subcategories available",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Password cannot be empty",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Your account does not have the required permissions to perform this action",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permission Required",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server not selected",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Přidělit zásoby",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Přidělené zásoby",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Zobrazit poznámky k verzi aplikace",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Nastavení aplikace",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Skenování čárových kódů pozastaveno",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Klepnutím nebo podržením pozastavíte skenování",
|
||||
"barcodeScanPause": "Kliknutím pozastavíte skenování",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Skenovat pro přiřazení čárového kódu",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Společnosti",
|
||||
"@companies": {},
|
||||
"complete": "Dokončit",
|
||||
"@complete": {},
|
||||
"completeOrder": "Dokončit objednávku",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Datum dokončení",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Konfigurace nastavení serveru",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Odstranění se nezdařilo",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Opravdu chcete odstranit tento obrázek?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Smazat obrázek",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Smazat obrázek",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Odstranit díl",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Odstranit tento díl z databáze",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Odstránění bylo úspěšné",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Datum dodání",
|
||||
"@deliveryDate": {},
|
||||
"description": "Popis",
|
||||
"@description": {},
|
||||
"destination": "Místo určení",
|
||||
|
|
@ -268,7 +282,7 @@
|
|||
"@editItem": {},
|
||||
"editLineItem": "Upravit položku",
|
||||
"@editLineItem": {},
|
||||
"email": "Mail",
|
||||
"email": "E-mail",
|
||||
"@email": {},
|
||||
"enterPassword": "Zadejte heslo",
|
||||
"@enterPassword": {},
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Zobrazit tlačítko pro objednávku na domovské obrazovce",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Zobrazit zásilky",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Zobrazit čekající zásilky na domovské stránce",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Zobrazit prodejní objednávky",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Zobrazit tlačítko pro objednávku na domovské obrazovce",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Neplatné uživatelské jméno nebo heslo.",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Faktura",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Číslo faktury",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Vystavit",
|
||||
"@issue": {},
|
||||
"issueDate": "Datum nahlášení",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Klíčová slova",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Ovladač pro popisky",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Vyberte ovladač pro tiskárnu štítků",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Tisk štítku",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Povolit tisk štítku",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Vytvořit nové skladové místo",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Výchozí umístění",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Není zadáno žádné umístění",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Skladové místo bylo aktualizováno",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Jméno",
|
||||
"@name": {},
|
||||
"no": "Ne",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Nepřipojeno",
|
||||
"@notConnected": {},
|
||||
"notes": "Poznámky",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "Obrázek není k dispozici",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "Žádné ceny nejsou k dispozici",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Pro tuto komponentu nebyly nalezeny žádné cenové údaje",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Žádná podkategorie",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Žádné podkategorie nejsou k dispozici",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Heslo nemůže být prázdné",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Čekající",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Váš účet nemá potřebná oprávnění k provedení této akce",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Vyžadováno oprávnění",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server není vybrán",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Zásilka",
|
||||
"@shipment": {},
|
||||
"shipments": "Dodávky",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Čekající zásilky",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Přidat dodávku",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Zkontrolovat zásilku",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Označit tuto zásilku jako zkontrolovanou",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Zásilka zkontrolována",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Datum odeslání",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Upravit zásilku",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Referenční číslo zásilky",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Odeslat zásilku",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Odznačit zásilku",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Označit tuto zásilku jako odznačenou",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Zásilka aktualizována",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Odesláno",
|
||||
"@shipped": {},
|
||||
"sku": "Číslo zboží (SKU)",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Celková cena",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Sledovací číslo",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Převod",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Webová stránka",
|
||||
"@website": {},
|
||||
"yes": "Ano",
|
||||
"@yes": {},
|
||||
"price": "Cena",
|
||||
"@price": {},
|
||||
"priceRange": "Cenový rozsah",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Měna",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Cena sleva",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "Žádné ceny nejsou k dispozici",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Pro tuto komponentu nebyly nalezeny žádné cenové údaje",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Opravdu chcete odstranit tento obrázek?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Smazat obrázek",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Smazat obrázek",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Bestand zuweisen",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Zugewiesener Bestand",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "App-Versionshinweise anzeigen",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "App-Einstellungen",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Barcode-Scannen angehalten",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tippen oder halten um das Scannen anzuhalten",
|
||||
"barcodeScanPause": "Tippen um das Scannen zu pausieren",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scannen um Barcode zuzuweisen",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Firmen",
|
||||
"@companies": {},
|
||||
"complete": "",
|
||||
"@complete": {},
|
||||
"completeOrder": "Bestellung abschließen",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Abgeschlossen am",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Server-Einstellungen konfigurieren",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Löschvorgang fehlgeschlagen",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Möchten Sie dieses Bild wirklich löschen?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Bild löschen",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Bild löschen",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Teil löschen",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Dieses Teil aus der Datenbank löschen",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Löschvorgang erfolgreich",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Lieferdatum",
|
||||
"@deliveryDate": {},
|
||||
"description": "Beschreibung",
|
||||
"@description": {},
|
||||
"destination": "Zielort",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Bestellungen auf Startseite anzeigen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Lieferungen anzeigen",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Ausstehende Lieferaufträge auf der Startseite anzeigen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Aufträge anzeigen",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Verkaufsknopf auf dem Startbildschirm anzeigen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Ungültige Kombination aus Benutzername und Passwort",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Rechnung",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Rechnungsnummer",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Aufgeben",
|
||||
"@issue": {},
|
||||
"issueDate": "Ausstellungsdatum",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Schlüsselwörter",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Etikettendrucker Treiber",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Etikettendrucker Treiber auswählen",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Etikettendruck",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Etikettendruck aktivieren",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Neuen Lagerort erstellen",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Standard Lagerort",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Lagerort nicht angegeben",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Lagerort aktualisiert",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Name",
|
||||
"@name": {},
|
||||
"no": "Nein",
|
||||
"@no": {},
|
||||
"notApplicable": "nicht verfügbar",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Nicht verbunden",
|
||||
"@notConnected": {},
|
||||
"notes": "Notizen",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "Kein Bild verfügbar",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "Keine Preisinformation verfügbar",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Keine Preisdaten für diesen Teil gefunden",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Keine Unter-Kategorien",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Keine Unter-Kategorien verfügbar",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Passwort darf nicht leer sein",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Ausstehend",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Das Konto hat die erforderlichen Berechtigungen zum Ausführen dieses Vorgangs nicht",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Berechtigung erforderlich",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server nicht ausgewählt",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Lieferung",
|
||||
"@shipment": {},
|
||||
"shipments": "Lieferungen",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Ausstehende Lieferungen",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Lieferung hinzufügen",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Lieferung überprüfen",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Diese Lieferung als geprüft markieren",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Lieferung überprüft",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Versanddatum",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Lieferung bearbeiten",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Sendungsreferenz",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Lieferung versenden",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Lieferung ungeprüft markieren",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Diese Lieferung als ungeprüft markieren",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Lieferung Aktualisiert",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Versandt",
|
||||
"@shipped": {},
|
||||
"sku": "Bestellnummer",
|
||||
|
|
@ -1040,7 +1102,7 @@
|
|||
"@timeout": {
|
||||
"description": ""
|
||||
},
|
||||
"toggleTorch": "Toggle Torch",
|
||||
"toggleTorch": "Taschenlampe umschalten",
|
||||
"@toggleTorch": {},
|
||||
"tokenError": "Token-Fehler",
|
||||
"@tokenError": {},
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Gesamtbetrag",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Sendungsverfolgungsnummer",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Verschieben",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,13 +1174,15 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"yes": "Ja",
|
||||
"@yes": {},
|
||||
"price": "Preis",
|
||||
"@price": {},
|
||||
"priceRange": "Preisspanne",
|
||||
"@priceRange": {},
|
||||
"priceOverrideMin": "Minimum Price Override",
|
||||
"priceOverrideMin": "Mindestpreis überschreiben",
|
||||
"@priceOverrideMin": {},
|
||||
"priceOverrideMax": "Maximum Price Override",
|
||||
"priceOverrideMax": "Maximalen Preis ignorieren",
|
||||
"@priceOverrideMax": {},
|
||||
"salePrice": "Verkaufspreis",
|
||||
"@salePrice": {},
|
||||
|
|
@ -1132,20 +1198,10 @@
|
|||
"@variantCost": {},
|
||||
"overallPricing": "Gesamt Preise",
|
||||
"@overallPricing": {},
|
||||
"pricingOverrides": "Pricing Overrides",
|
||||
"pricingOverrides": "Preisgestaltung ignorieren",
|
||||
"@pricingOverrides": {},
|
||||
"currency": "Währung",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "Keine Preisinformation verfügbar",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Keine Preisdaten für diesen Teil gefunden",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Möchten Sie dieses Bild wirklich löschen?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Bild löschen",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Bild löschen",
|
||||
"@deleteImage": {}
|
||||
"priceBreaks": "Preisstaffel",
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Asignar stock",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Mostrar notas de versión de la aplicación",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Ajustes de aplicación",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Escaneo de código de barras en pausa",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Toque o mantenga pulsado para pausar el escaneo",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Escanear para asignar código de barras",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Empresas",
|
||||
"@companies": {},
|
||||
"complete": "Completado",
|
||||
"@complete": {},
|
||||
"completeOrder": "Completar Pedido",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Fecha de Finalización",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configure las opciones de su servidor",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Operación de borrado fallida",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "¿Estas seguro de eliminar esta imagen?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Eliminar imagen",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Eliminar imagen",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Eliminar pieza",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Eliminar esta pieza de la base de datos",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Operación de borrado exitosa",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Descripción",
|
||||
"@description": {},
|
||||
"destination": "Destinación",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Mostrar botón de orden de compra en la pantalla de inicio",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Mostrar Órdenes de Venta",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Mostrar botón de órdenes de ventas en la pantalla de inicio",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Combinación de nombre de usuario / contraseña no válida",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "",
|
||||
"@issue": {},
|
||||
"issueDate": "Fecha de problema",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Palabras claves",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Impresión de etiquetas",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Habilitar impresión de etiquetas",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Crear nueva ubicación de stock",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No se especificó ninguna ubicación",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Ubicación de stock actualizada",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Nombre",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "No conectado",
|
||||
"@notConnected": {},
|
||||
"notes": "Notas",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No hay imagen disponible",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No hay precios disponibles",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No se encontraron datos de precios para esta parte",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "No hay subcategorías",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No hay subcategorías disponibles",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "El campo de Contraseña no puede estar vacío",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Tu usuario no cuenta con los permisos necesarios para realizar esta acción",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Se requiere autorización",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Servidor no seleccionado",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Envíos",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Añadir envío",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Enviado",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Precio total",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transferir",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Sitio Web",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Precio",
|
||||
"@price": {},
|
||||
"priceRange": "Rango de precios",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Divisa",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Diferenciales de precios",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No hay precios disponibles",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No se encontraron datos de precios para esta parte",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "¿Estas seguro de eliminar esta imagen?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Eliminar imagen",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Eliminar imagen",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Asignar existencias",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Mostrar notas de versión de la aplicación",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Ajustes de aplicación",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Escaneo de código de barras en pausa",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Toque o mantenga pulsado para pausar el escaneo",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Escanear para asignar código de barras",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Empresas",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Fecha de finalización",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configurar ajustes del servidor",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Operación de eliminación fallida",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Eliminar parte",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Eliminar esta parte de la base de datos",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Operación de eliminación exitosa",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Descripción",
|
||||
"@description": {},
|
||||
"destination": "Destino",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Mostrar botón de orden de compra en la pantalla de inicio",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Mostrar Órdenes de Venta",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Mostrar botón de órdenes de ventas en la pantalla de inicio",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Combinación inválida de usuario/contraseña",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Emitir",
|
||||
"@issue": {},
|
||||
"issueDate": "Fecha de emisión",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Palabras claves",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Impresión de etiquetas",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Habilitar impresión de etiquetas",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Crear nueva ubicación de inventario",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No se especificó ninguna ubicación",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Ubicación de inventario actualizada",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Nombre",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "No conectado",
|
||||
"@notConnected": {},
|
||||
"notes": "Notas",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "No hay subcategorías",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No hay subcategorías disponibles",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "La contraseña no puede estar vacía",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Tu cuenta no cuenta con los permisos necesarios para realizar esta acción",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Se requiere autorización",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Servidor no seleccionado",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Envíos",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Añadir Envío",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Deseleccionar Envío",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Enviado",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1006,7 +1068,7 @@
|
|||
"@suppliers": {},
|
||||
"supplierReference": "Referencia del proveedor",
|
||||
"@supplierReference": {},
|
||||
"switchCamera": "Switch Camera",
|
||||
"switchCamera": "Cambiar Cámara",
|
||||
"@switchCamera": {},
|
||||
"takePicture": "Tomar una foto",
|
||||
"@takePicture": {},
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Precio total",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transferir",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1084,7 +1148,7 @@
|
|||
"@uploadFailed": {},
|
||||
"uploadSuccess": "Archivo subido",
|
||||
"@uploadSuccess": {},
|
||||
"uploadImage": "Upload Image",
|
||||
"uploadImage": "Subir Imagen",
|
||||
"@uploadImage": {},
|
||||
"usedIn": "Usado en",
|
||||
"@usedIn": {},
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Sitio web",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Jaota laoseis",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Display app release notes",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Rakenduse sätted",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Barcode scanning paused",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tap or hold to pause scanning",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scan to assign barcode",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Ettevõtted",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Seadista serveri seadeid",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Delete operation failed",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Kustuta osa",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Remove this part from the database",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Delete operation successful",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Kirjeldus",
|
||||
"@description": {},
|
||||
"destination": "Sihtkoht",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Show purchase order button on home screen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Show Sales Orders",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Show sales order button on home screen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Märksõnad",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Label Printing",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Enable label printing",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No location specified",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stock location updated",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Nimi",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Pole ühendatud",
|
||||
"@notConnected": {},
|
||||
"notes": "Märkmed",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Alamkategooriaid pole",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Ühtegi alamkategooriat pole saadaval",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Password cannot be empty",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Teie kontol ei ole vajalikke õigusi selle toimingu sooritamiseks",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permission Required",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Serverite pole valitud",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Saadetised",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Lisa saadetis",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Saadetud",
|
||||
"@shipped": {},
|
||||
"sku": "Tootekood",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Hind kokku",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Ülekanne",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Koduleht",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -36,16 +36,18 @@
|
|||
"@appDetails": {},
|
||||
"allocated": "اختصاص داده شده",
|
||||
"@allocated": {},
|
||||
"aspectRatio16x9": "16:9",
|
||||
"aspectRatio16x9": "۱۶ به ۹",
|
||||
"@aspectRatio16x9": {},
|
||||
"aspectRatio3x2": "3:2",
|
||||
"aspectRatio3x2": "۳ به ۲",
|
||||
"@aspectRatio3x2": {},
|
||||
"aspectRatio4x3": "4:3",
|
||||
"aspectRatio4x3": "۴ به ۳",
|
||||
"@aspectRatio4x3": {},
|
||||
"aspectRatioSquare": "Square (1:1)",
|
||||
"aspectRatioSquare": "مربعی (۱ به ۱)",
|
||||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "موجودی اختصاص داده شده",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "موجودی اختصاص داده شده",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "نمایش یادداشت های انتشار برنامه",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "تنظیمات برنامه",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "اسکن بارکد متوقف شد",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "برای توقف اسکن ضربه بزنید یا نگه دارید",
|
||||
"barcodeScanPause": "برای توقف اسکن لمس کنید",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "برای اختصاص بارکد اسکن کنید",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "شرکتها",
|
||||
"@companies": {},
|
||||
"complete": "تکمیل",
|
||||
"@complete": {},
|
||||
"completeOrder": "تکمیل سفارش",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "تاریخ تکمیل",
|
||||
"@completionDate": {},
|
||||
"configureServer": "تنظیم شمخصات سرور",
|
||||
|
|
@ -198,9 +204,9 @@
|
|||
},
|
||||
"credits": "اعتبارات",
|
||||
"@credits": {},
|
||||
"crop": "Crop",
|
||||
"crop": "برش",
|
||||
"@crop": {},
|
||||
"cropImage": "Crop Image",
|
||||
"cropImage": "برش تصویر",
|
||||
"@cropImage": {},
|
||||
"customer": "مشتری",
|
||||
"@customer": {},
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "عملیات حذف ناموفق بوده است",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "آیا مطمئن هستید که میخواهید این تصویر را حذف کنید؟",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "حذف تصویر",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "حذف تصویر",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "حذف قسمت",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "این قطعه را از پایگاه داده حذف کنید",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "عملیات حذف با موفقیت انجام شد",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "تاریخ تحویل",
|
||||
"@deliveryDate": {},
|
||||
"description": "توضیحات",
|
||||
"@description": {},
|
||||
"destination": "مقصد",
|
||||
|
|
@ -240,9 +254,9 @@
|
|||
},
|
||||
"documentation": "مستندات",
|
||||
"@documentation": {},
|
||||
"downloadComplete": "Download Complete",
|
||||
"downloadComplete": "دانلود انجام شد",
|
||||
"@downloadComplete": {},
|
||||
"downloadError": "Error downloading image",
|
||||
"downloadError": "خطای دانلود تصویر",
|
||||
"@downloadError": {},
|
||||
"downloading": "در حال دانلود فایل",
|
||||
"@downloading": {},
|
||||
|
|
@ -268,7 +282,7 @@
|
|||
"@editItem": {},
|
||||
"editLineItem": "ویرایش ایتم خط",
|
||||
"@editLineItem": {},
|
||||
"email": "Email",
|
||||
"email": "پست الکترونیکی",
|
||||
"@email": {},
|
||||
"enterPassword": "رمز عبور را وارد کنید",
|
||||
"@enterPassword": {},
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "نمایش دکمه سفارش خرید در صفحه خانه",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "نمایش محموله",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "نمایش محموله در انتظار ارسال بر روی صفحه اصلی",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "نمایش سفارش های فروش",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "نمایش دکمه سفارش فروش در صفحه خانه",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "ترکیب نام کاربری / رمز عبور نامعتبر",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "صورتحساب",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "شماره صورتحساب",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "موضوع",
|
||||
"@issue": {},
|
||||
"issueDate": "تاریخ صدور",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "کلمات کلیدی",
|
||||
"@keywords": {},
|
||||
"labelDriver": "درایور چاپگر برچسب",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "انتخاب درایور چاپگر برچسب",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "چاپ لیبل",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "چاپ لیبل را انتخاب کنید",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "مکان سهام جدید ایجاد کنید",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "مکان پیشفرض",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "هیچ مکانی مشخص نشده است",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "مکان سهام به روز شد",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "نام",
|
||||
"@name": {},
|
||||
"no": "خیر",
|
||||
"@no": {},
|
||||
"notApplicable": "موجود نیست",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "متصل نیست",
|
||||
"@notConnected": {},
|
||||
"notes": "یادداشت ها",
|
||||
|
|
@ -530,8 +562,12 @@
|
|||
"@noResponse": {},
|
||||
"noResults": "بدون نتیجه",
|
||||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"noImageAvailable": "هیچ تصویری موجود نیست",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "هیچ قیمتی موجود نیست",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "هیچ اطلاعات قیمتی برای این قطعه یافت نشد",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "بدون زیر دسته بندی",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "هیچ زیر دسته بندی ای در دسترس نیست",
|
||||
|
|
@ -594,9 +630,9 @@
|
|||
"@partsNone": {},
|
||||
"partNoResults": "هیچ قطعه ای مطابق با جست و جو یافت نشد",
|
||||
"@partNoResults": {},
|
||||
"partPricing": "Part Pricing",
|
||||
"partPricing": "قیمتگذاری قطعات",
|
||||
"@partPricing": {},
|
||||
"partPricingSettingDetail": "Display part pricing information",
|
||||
"partPricingSettingDetail": "نمایش اطلاعات قیمتگذاری قطعات",
|
||||
"@pricingSettingDetail": {},
|
||||
"partSettings": "تنظیمات قطعه",
|
||||
"@partSettings": {},
|
||||
|
|
@ -624,11 +660,13 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "رمز عبور نمی تواند خالی باشد",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "در حال بررسی",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "حساب شما مجوزهای لازم برای انجام این عمل را ندارد",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "نیازمند مجوز",
|
||||
"@permissionRequired": {},
|
||||
"phone": "Phone",
|
||||
"phone": "تماس",
|
||||
"@phone": {},
|
||||
"printLabel": "پرینت برچسب",
|
||||
"@printLabel": {},
|
||||
|
|
@ -724,7 +762,7 @@
|
|||
"@reference": {},
|
||||
"refresh": "تازه سازی",
|
||||
"@refresh": {},
|
||||
"rotateClockwise": "Rotate 90° clockwise",
|
||||
"rotateClockwise": "چرخش °90 درجه در جهت عقربه های ساعت",
|
||||
"@rotateClockwise": {},
|
||||
"refreshing": "در حال تازه سازی",
|
||||
"@refreshing": {},
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "سرور انتخاب نشده است",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "محموله",
|
||||
"@shipment": {},
|
||||
"shipments": "محموله ها",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "محموله در انتظار ارسال",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "افزودن محموله",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "بررسی محموله",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "این محموله را بررسی شده علامت گذاری کن",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "محموله بررسی شده",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "تاریخ ارسال",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "تغییر محموله",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "کد محموله",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "ارسال محموله",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "محموله بررسی نشده",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "این محموله را بررسی نشده علامت گذاری کن",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "محموله به روز رسانی شد",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "ارسال شده",
|
||||
"@shipped": {},
|
||||
"sku": "واحد نگهداری موجودی",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "قیمت کل",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "کد رهگیری",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "انتقال",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1084,7 +1148,7 @@
|
|||
"@uploadFailed": {},
|
||||
"uploadSuccess": "فایل اپلود شد",
|
||||
"@uploadSuccess": {},
|
||||
"uploadImage": "Upload Image",
|
||||
"uploadImage": "بارگذاری تصویر",
|
||||
"@uploadImage": {},
|
||||
"usedIn": "استفاده شده در",
|
||||
"@usedIn": {},
|
||||
|
|
@ -1110,42 +1174,34 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "وب سایت",
|
||||
"@website": {},
|
||||
"price": "Price",
|
||||
"yes": "بله",
|
||||
"@yes": {},
|
||||
"price": "قیمت",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
"priceRange": "بازه قیمت",
|
||||
"@priceRange": {},
|
||||
"priceOverrideMin": "Minimum Price Override",
|
||||
"priceOverrideMin": "قیمت دستی مینیمم",
|
||||
"@priceOverrideMin": {},
|
||||
"priceOverrideMax": "Maximum Price Override",
|
||||
"priceOverrideMax": "قیمت دستی ماکزیمم",
|
||||
"@priceOverrideMax": {},
|
||||
"salePrice": "Sale Price",
|
||||
"salePrice": "قیمت حراج",
|
||||
"@salePrice": {},
|
||||
"saleHistory": "Sale History",
|
||||
"saleHistory": "تاریخچه حراج",
|
||||
"@saleHistory": {},
|
||||
"supplierPricing": "Supplier Pricing",
|
||||
"supplierPricing": "قیمت تامین کننده",
|
||||
"@supplierPricing": {},
|
||||
"bomCost": "BOM Cost",
|
||||
"bomCost": "هزینه تمام شده",
|
||||
"@bomCost": {},
|
||||
"internalCost": "Internal Cost",
|
||||
"internalCost": "هزینه داخلی",
|
||||
"@internalCost": {},
|
||||
"variantCost": "Variant Cost",
|
||||
"variantCost": "هزینه متغیر",
|
||||
"@variantCost": {},
|
||||
"overallPricing": "Overall Pricing",
|
||||
"overallPricing": "قیمت نهایی",
|
||||
"@overallPricing": {},
|
||||
"pricingOverrides": "Pricing Overrides",
|
||||
"pricingOverrides": "قیمت دستی",
|
||||
"@pricingOverrides": {},
|
||||
"currency": "Currency",
|
||||
"currency": "واحد پول",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"priceBreaks": "کاهش قیمت",
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Allocate Stock",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Näytä sovelluksen julkaisutiedot",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Sovelluksen asetukset",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Barcode scanning paused",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tap or hold to pause scanning",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scan to assign barcode",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Yritykset",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Määritä palvelimen asetukset",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Poisto epäonnistui",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Poista osa",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Poista tämä osa tietokannasta",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Poistaminen onnistui",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Kuvaus",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Show purchase order button on home screen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Show Sales Orders",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Show sales order button on home screen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Virheellinen käyttäjätunnuksen / salasanan yhdistelmä",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Avainsanat",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Label Printing",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Enable label printing",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Sijaintia ei ole määritetty",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stock location updated",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Nimi",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Not Connected",
|
||||
"@notConnected": {},
|
||||
"notes": "Merkinnät",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "No Subcategories",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No subcategories available",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Salasana ei voi olla tyhjä",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Tililläsi ei ole tarvittavia oikeuksia tämän toiminnon suorittamiseen",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Käyttöoikeus vaaditaan",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Palvelinta ei ole valittu",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Siirrä",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Sivusto",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -42,10 +42,12 @@
|
|||
"@aspectRatio3x2": {},
|
||||
"aspectRatio4x3": "4:3",
|
||||
"@aspectRatio4x3": {},
|
||||
"aspectRatioSquare": "Square (1:1)",
|
||||
"aspectRatioSquare": "Carré (1:1)",
|
||||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Allouer un stock",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Afficher les notes de version de l'application",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Réglages de l'application",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Scan de code-barres en pause",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Appuyez ou maintenez pour mettre en pause le scan",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scanner pour attribuer un code-barres",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Sociétés",
|
||||
"@companies": {},
|
||||
"complete": "Terminé",
|
||||
"@complete": {},
|
||||
"completeOrder": "Finir l'achat",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Date d'achèvement",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configurer les paramètres serveur",
|
||||
|
|
@ -198,9 +204,9 @@
|
|||
},
|
||||
"credits": "Crédits",
|
||||
"@credits": {},
|
||||
"crop": "Crop",
|
||||
"crop": "Rogner",
|
||||
"@crop": {},
|
||||
"cropImage": "Crop Image",
|
||||
"cropImage": "Rogner l'image",
|
||||
"@cropImage": {},
|
||||
"customer": "Client",
|
||||
"@customer": {},
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "L'opération de suppression a échoué",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Êtes-vous sûr de vouloir supprimer cette image ?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Supprimer l'image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Supprimer l'image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Supprimer la pièce",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Supprimer cette pièce de la base de données",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Opération de suppression réussie",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Description",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -240,9 +254,9 @@
|
|||
},
|
||||
"documentation": "Documentation",
|
||||
"@documentation": {},
|
||||
"downloadComplete": "Download Complete",
|
||||
"downloadComplete": "Téléchargement terminé",
|
||||
"@downloadComplete": {},
|
||||
"downloadError": "Error downloading image",
|
||||
"downloadError": "Impossible de télécharger l'image",
|
||||
"@downloadError": {},
|
||||
"downloading": "Téléchargement du fichier",
|
||||
"@downloading": {},
|
||||
|
|
@ -302,9 +316,9 @@
|
|||
"@expiryExpired": {},
|
||||
"expiryStale": "Périmé",
|
||||
"@expiryStale": {},
|
||||
"extraLineItem": "Extra Line Item",
|
||||
"extraLineItem": "Ligne supplémentaire",
|
||||
"@extraLineItem": {},
|
||||
"extraLineItems": "Extra Line Items",
|
||||
"extraLineItems": "Lignes supplémentaires",
|
||||
"@extraLineItems": {},
|
||||
"feedback": "Donner votre avis",
|
||||
"@feedback": {},
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Afficher le bouton de l'ordre d'achat sur l'écran d'accueil",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Afficher les commandes de vente",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Afficher le bouton des commandes sur l'écran d'accueil",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Nom d'utilisateur/mot de passe invalide",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Problème",
|
||||
"@issue": {},
|
||||
"issueDate": "Date d'émission",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Mots clés",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Impression étiquettes",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Activer l'impression d'étiquettes",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Créer un nouvel emplacement de stock",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Aucun emplacement spécifié",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Emplacement du stock mis à jour",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Nom",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Non connecté",
|
||||
"@notConnected": {},
|
||||
"notes": "Notes",
|
||||
|
|
@ -530,8 +562,12 @@
|
|||
"@noResponse": {},
|
||||
"noResults": "Aucun résultat",
|
||||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"noImageAvailable": "Pas d'image disponible",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "Aucune tarification disponible",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Aucune donnée de tarification disponible pour cette pièce",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Pas de sous-catégorie",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Aucune sous-catégorie disponible",
|
||||
|
|
@ -624,11 +660,13 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Le mot de passe peut pas être vide",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Vous n'avez pas les autorisations requises pour exécuter cette action",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Autorisation requise",
|
||||
"@permissionRequired": {},
|
||||
"phone": "Phone",
|
||||
"phone": "Téléphone",
|
||||
"@phone": {},
|
||||
"printLabel": "Imprimer l'étiquette",
|
||||
"@printLabel": {},
|
||||
|
|
@ -724,7 +762,7 @@
|
|||
"@reference": {},
|
||||
"refresh": "Actualiser",
|
||||
"@refresh": {},
|
||||
"rotateClockwise": "Rotate 90° clockwise",
|
||||
"rotateClockwise": "Rotation à 90° dans le sens horaire",
|
||||
"@rotateClockwise": {},
|
||||
"refreshing": "Actualisation en cours",
|
||||
"@refreshing": {},
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Serveur non sélectionné",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Modes de livraison",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Ajouter un mode de livraison",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Expédié",
|
||||
"@shipped": {},
|
||||
"sku": "UGS",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Prix Total",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfert",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1084,7 +1148,7 @@
|
|||
"@uploadFailed": {},
|
||||
"uploadSuccess": "Fichier transféré",
|
||||
"@uploadSuccess": {},
|
||||
"uploadImage": "Upload Image",
|
||||
"uploadImage": "Envoyer une image",
|
||||
"@uploadImage": {},
|
||||
"usedIn": "Utilisé dans",
|
||||
"@usedIn": {},
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Site web",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Prix",
|
||||
"@price": {},
|
||||
"priceRange": "Fourchette de prix",
|
||||
|
|
@ -1132,20 +1198,10 @@
|
|||
"@variantCost": {},
|
||||
"overallPricing": "Cout Global",
|
||||
"@overallPricing": {},
|
||||
"pricingOverrides": "Pricing Overrides",
|
||||
"pricingOverrides": "Remplacement des prix",
|
||||
"@pricingOverrides": {},
|
||||
"currency": "Devise",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Ruptures de prix",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "Aucune tarification disponible",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Aucune donnée de tarification disponible pour cette pièce",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "הקצאת מלאי",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": " הצג הערות פרסום של האפליקציה",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "הגדרות אפליקציה",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "סריקת ברקוד מושהית",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "בקש או החזק כדי להשהות את הסריקה",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "סרוק כדי להקצות ברקוד",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "חברות",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "קבע את הגדרות השרת",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "פעולת המחיקה נכשלה",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "מחק פריט",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "הסר פריט זה ממסד הנתונים",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "פעולת המחיקה הצליחה",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "תיאור",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "הצג את לחצן הזמנת רכש במסך הבית",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "הצג הזמנות מכירה",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "הצג את לחצן הזמנות מכירה במסך הבית",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "שילוב שם משתמש/סיסמה לא תקין",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "להנפיק",
|
||||
"@issue": {},
|
||||
"issueDate": "תאריך הנפקה",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "מילות מפתח",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "הדפסת תווית",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "אפשר הדפסת תווית",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "צור מיקום מלאי חדש",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "לא צוין מיקום",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "מיקום המלאי עודכן",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "שם",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "לא מחובר",
|
||||
"@notConnected": {},
|
||||
"notes": "הערות",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "אין קטגורית משנה",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "אין קטכוריות משנה זמינות",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "הסיסמה לא יכולה להיות ריקה",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "לחשבון זה אין את ההרשאות לבצע פעולה זו",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "נדרשת הרשאה",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "השרת לא נבחר",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "משלוחים",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
"sku": "מק\"ט [מספר קטלוגי] ",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "מחיר כולל",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "העבר",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "אתר",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
"@addStock": {
|
||||
"description": "add stock"
|
||||
},
|
||||
"address": "Address",
|
||||
"address": "",
|
||||
"@address": {},
|
||||
"appAbout": "About InvenTree",
|
||||
"@appAbout": {},
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Allocate Stock",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Display app release notes",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "App Settings",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Barcode scanning paused",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tap or hold to pause scanning",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scan to assign barcode",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -112,7 +114,7 @@
|
|||
"@barcodeScanDelay": {},
|
||||
"barcodeScanDelayDetail": "Delay between barcode scans",
|
||||
"@barcodeScanDelayDetail": {},
|
||||
"barcodeScanGeneral": "Scan an InvenTree barcode",
|
||||
"barcodeScanGeneral": "InvenTree बारकोड स्कैन करें",
|
||||
"@barcodeScanGeneral": {},
|
||||
"barcodeScanInItems": "Scan stock items into this location",
|
||||
"@barcodeScanInItems": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Companies",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configure server settings",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Delete operation failed",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Delete Part",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Remove this part from the database",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Delete operation successful",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Description",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Show purchase order button on home screen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Show Sales Orders",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Show sales order button on home screen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Keywords",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Label Printing",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Enable label printing",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No location specified",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stock location updated",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Name",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Not Connected",
|
||||
"@notConnected": {},
|
||||
"notes": "Notes",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "No Subcategories",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No subcategories available",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Password cannot be empty",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Your account does not have the required permissions to perform this action",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permission Required",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server not selected",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Készlet foglalása",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Lefoglalt Készlet",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Kiadási közlemények",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Alkalmazásbeállítások",
|
||||
|
|
@ -54,7 +56,7 @@
|
|||
"@appSettingsDetails": {},
|
||||
"assignedToMe": "Hozzámrendelt",
|
||||
"@assignedToMe": {},
|
||||
"assignedToMeDetail": "Show orders which are assigned to me",
|
||||
"assignedToMeDetail": "Mutasd az én rendeléseim",
|
||||
"@assignedToMeDetail": {},
|
||||
"attachments": "Mellékletek",
|
||||
"@attachments": {},
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Vonalkód olvasás megállítva",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Kattints vagy tartsd lenyomva a beolvasás felfüggesztéséhez",
|
||||
"barcodeScanPause": "Érintse meg a szkennelés szüneteltetéséhez",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Kódolvasás a hozzárendeléshez",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -146,7 +148,7 @@
|
|||
"@build": {},
|
||||
"building": "Gyártásban",
|
||||
"@building": {},
|
||||
"cameraCreationError": "Could not open camera controller",
|
||||
"cameraCreationError": "Nem sikerült a kameravezérlőt megnyitni",
|
||||
"@cameraCreationError": {},
|
||||
"cameraInternal": "Belső kamera",
|
||||
"@cameraInternal": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Cégek",
|
||||
"@companies": {},
|
||||
"complete": "Kész",
|
||||
"@complete": {},
|
||||
"completeOrder": "Rendelés teljesítése",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Befejezés dátuma",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Kiszolgáló beállítások konfigurálása",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Törlés sikertelen",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Biztosan törli a képet?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Kép törlése",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Kép törlése",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Alkatrész törlése",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Alkatrész eltávolítása az adatbázisból",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Törlés sikeres",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Szállítási Dátum",
|
||||
"@deliveryDate": {},
|
||||
"description": "Leírás",
|
||||
"@description": {},
|
||||
"destination": "Cél",
|
||||
|
|
@ -302,9 +316,9 @@
|
|||
"@expiryExpired": {},
|
||||
"expiryStale": "Elavult",
|
||||
"@expiryStale": {},
|
||||
"extraLineItem": "Extra Line Item",
|
||||
"extraLineItem": "Egyéb tétel",
|
||||
"@extraLineItem": {},
|
||||
"extraLineItems": "Extra Line Items",
|
||||
"extraLineItems": "Egyéb tételek",
|
||||
"@extraLineItems": {},
|
||||
"feedback": "Visszajelzés",
|
||||
"@feedback": {},
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Beszerzési rendelések gomb megjelenítése a főoldalon",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Szállítmányok Mutatása",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Függőben lévő szállítmányok megjelenítése a kezdőképernyőn",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Vevői rendelések megmutatása",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Értékesítési rendelések gomb megjelenítése a főoldalon",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Érvénytelen felhasználónév/jelszó kombináció",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Számla",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Számlaszám",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Kiküldés",
|
||||
"@issue": {},
|
||||
"issueDate": "Kiállítás dátuma",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Kulcsszavak",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Címke Meghajtó",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Címkenyomtató Meghajtó Kiválasztása",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Címke nyomtatás",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Címke nyomtatás engedélyezése",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Új készlet hely létrehozása",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Alapértelmezett Hely",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Nincs megadva hely",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Készlet hely adatai frissítve",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Név",
|
||||
"@name": {},
|
||||
"no": "Nem",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Nincs kapcsolódva",
|
||||
"@notConnected": {},
|
||||
"notes": "Megjegyzések",
|
||||
|
|
@ -530,8 +562,12 @@
|
|||
"@noResponse": {},
|
||||
"noResults": "Nincs találat",
|
||||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"noImageAvailable": "Nincs elérhető kép",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "Árazás nem elérhető",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Nincs árazási információ ehhez az alkatrészhez",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Nincsenek alkategóriák",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Nincsenek alkategóriák",
|
||||
|
|
@ -596,7 +632,7 @@
|
|||
"@partNoResults": {},
|
||||
"partPricing": "Alkatrész árazása",
|
||||
"@partPricing": {},
|
||||
"partPricingSettingDetail": "Display part pricing information",
|
||||
"partPricingSettingDetail": "Alkatrész árazási információk megjelenítése",
|
||||
"@pricingSettingDetail": {},
|
||||
"partSettings": "Alkatrész beállítások",
|
||||
"@partSettings": {},
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Jelszó nem lehet üres",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Függőben",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Nincs meg a szükséges jogosultságod, hogy végrehajtsd ezt a műveletet",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Engedély szükséges",
|
||||
|
|
@ -670,17 +708,17 @@
|
|||
"@profileTapToCreate": {},
|
||||
"projectCode": "Projektszám",
|
||||
"@projectCode": {},
|
||||
"purchaseOrderConfirmScan": "Confirm Scan Data",
|
||||
"purchaseOrderConfirmScan": "Beolvasott adatok jóváhagyása",
|
||||
"@purchaseOrderConfirmScan": {},
|
||||
"purchaseOrderConfirmScanDetail": "Confirm details when scanning in items",
|
||||
"purchaseOrderConfirmScanDetail": "Tételek részleteinek jóváhagyása beolvasás közben",
|
||||
"@purchaseOrderConfirmScanDetail": {},
|
||||
"purchaseOrderEnable": "Enable Purchase Orders",
|
||||
"purchaseOrderEnable": "Beszerzési rendelések engedélyezése",
|
||||
"@purchaseOrderEnable": {},
|
||||
"purchaseOrderEnableDetail": "Enable purchase order functionality",
|
||||
"purchaseOrderEnableDetail": "Értékesítési rendelés funkció aktiválása",
|
||||
"@purchaseOrderEnableDetail": {},
|
||||
"purchaseOrderShowCamera": "Kamera gyorsbillentyű",
|
||||
"@purchaseOrderShowCamera": {},
|
||||
"purchaseOrderShowCameraDetail": "Enable image upload shortcut on purchase order screen",
|
||||
"purchaseOrderShowCameraDetail": "Képfeltöltés shortcut engedélyezése az beszerzési rendelés oldalon",
|
||||
"@purchaseOrderShowCameraDetail": {},
|
||||
"purchaseOrder": "Beszerzési rendelés",
|
||||
"@purchaseOrder": {},
|
||||
|
|
@ -802,7 +840,7 @@
|
|||
"@salesOrders": {},
|
||||
"salesOrderEnable": "Vevői rendelések engedélyezése",
|
||||
"@salesOrderEnable": {},
|
||||
"salesOrderEnableDetail": "Értékesítési rendés funkció aktiválása",
|
||||
"salesOrderEnableDetail": "Értékesítési rendelés funkció aktiválása",
|
||||
"@salesOrderEnableDetail": {},
|
||||
"salesOrderShowCamera": "Kamera gyorsbillentyű",
|
||||
"@salesOrderShowCamera": {},
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Nincs kiszolgáló választva",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Szállítmány",
|
||||
"@shipment": {},
|
||||
"shipments": "Szállítmányok",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Függőben Lévő Szállítmányok",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Szállítmány hozzáadása",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Szállítmány Ellenőrzése",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Jelölje meg ezt a szállítmányt ellenőrzöttként",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Szállítmány Ellenőrizve",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Szállítmány Dátuma",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Szállítmány Szerkesztése",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Szállítmány Hivatkozás",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Szállítmány Küldése",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Szállítmány Ellenőrzés Visszavonása",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Jelölje meg ezt a szállítmányt nem ellenőrzöttként",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Szállítmány Frissítve",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Kiszállítva",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Teljes ár",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Nyomkövetési Szám",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Áthelyezés",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1070,7 +1134,7 @@
|
|||
"@translateHelp": {},
|
||||
"unavailable": "Nem elérhető",
|
||||
"@unavailable": {},
|
||||
"unavailableDetail": "Item is not available",
|
||||
"unavailableDetail": "Tétel nem elérhető",
|
||||
"@unavailableDetail": {},
|
||||
"unitPrice": "Egységár",
|
||||
"@unitPrice": {},
|
||||
|
|
@ -1110,19 +1174,21 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Weboldal",
|
||||
"@website": {},
|
||||
"yes": "Igen",
|
||||
"@yes": {},
|
||||
"price": "Ár",
|
||||
"@price": {},
|
||||
"priceRange": "Ártartomány",
|
||||
"@priceRange": {},
|
||||
"priceOverrideMin": "Minimum Price Override",
|
||||
"priceOverrideMin": "Minimális Ár Felülbírálás",
|
||||
"@priceOverrideMin": {},
|
||||
"priceOverrideMax": "Maximum Price Override",
|
||||
"priceOverrideMax": "Maximumális Ár Felülbírálás",
|
||||
"@priceOverrideMax": {},
|
||||
"salePrice": "Eladási ár",
|
||||
"@salePrice": {},
|
||||
"saleHistory": "Eladási előzmények",
|
||||
"@saleHistory": {},
|
||||
"supplierPricing": "Supplier Pricing",
|
||||
"supplierPricing": "Beszállítói árazás",
|
||||
"@supplierPricing": {},
|
||||
"bomCost": "Alkatrészjegyzék költség",
|
||||
"@bomCost": {},
|
||||
|
|
@ -1130,22 +1196,12 @@
|
|||
"@internalCost": {},
|
||||
"variantCost": "Variáns költsége",
|
||||
"@variantCost": {},
|
||||
"overallPricing": "Overall Pricing",
|
||||
"overallPricing": "Általános árazás",
|
||||
"@overallPricing": {},
|
||||
"pricingOverrides": "Pricing Overrides",
|
||||
"pricingOverrides": "Árazás felülbírálások",
|
||||
"@pricingOverrides": {},
|
||||
"currency": "Pénznem",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Ársávok",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Kép törlése",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Kép törlése",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -42,19 +42,21 @@
|
|||
"@aspectRatio3x2": {},
|
||||
"aspectRatio4x3": "4:3",
|
||||
"@aspectRatio4x3": {},
|
||||
"aspectRatioSquare": "Square (1:1)",
|
||||
"aspectRatioSquare": "Persegi (1:1)",
|
||||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Alokasikan Stok",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Tampilkan catatan rilis aplikasi",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Pengaturan Aplikasi",
|
||||
"@appSettings": {},
|
||||
"appSettingsDetails": "Konfigurasikan pengaturan aplikasi InvenTree",
|
||||
"@appSettingsDetails": {},
|
||||
"assignedToMe": "Assigned to Me",
|
||||
"assignedToMe": "Ditugaskan kepada Saya",
|
||||
"@assignedToMe": {},
|
||||
"assignedToMeDetail": "Show orders which are assigned to me",
|
||||
"assignedToMeDetail": "Tampilkan pesanan yang ditugaskan kepada saya",
|
||||
"@assignedToMeDetail": {},
|
||||
"attachments": "Lampiran",
|
||||
"@attachments": {},
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Pemindaian barcode dijeda",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Ketuk atau tahan untuk menjeda pemindaian",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Pindai untuk menetapkan barcode",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -146,7 +148,7 @@
|
|||
"@build": {},
|
||||
"building": "Bangunan",
|
||||
"@building": {},
|
||||
"cameraCreationError": "Could not open camera controller",
|
||||
"cameraCreationError": "Tidak dapat membuka pengontrol kamera",
|
||||
"@cameraCreationError": {},
|
||||
"cameraInternal": "Kamera Internal",
|
||||
"@cameraInternal": {},
|
||||
|
|
@ -168,7 +170,7 @@
|
|||
"@categoryUpdated": {},
|
||||
"company": "Perusahaan",
|
||||
"@company": {},
|
||||
"companyAdd": "Add Company",
|
||||
"companyAdd": "Tambahkan Perusahaan",
|
||||
"@companyAdd": {},
|
||||
"companyEdit": "Rubah Perusahaan",
|
||||
"@companyEdit": {},
|
||||
|
|
@ -178,7 +180,11 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Perusahaan",
|
||||
"@companies": {},
|
||||
"completionDate": "Completion Date",
|
||||
"complete": "Selesai",
|
||||
"@complete": {},
|
||||
"completeOrder": "Lengkapi Pesanan",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Tanggal Selesai",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Konfigurasikan pengaturan server",
|
||||
"@configureServer": {},
|
||||
|
|
@ -198,9 +204,9 @@
|
|||
},
|
||||
"credits": "Kredit",
|
||||
"@credits": {},
|
||||
"crop": "Crop",
|
||||
"crop": "Pangkas",
|
||||
"@crop": {},
|
||||
"cropImage": "Crop Image",
|
||||
"cropImage": "Pangkas Gambar",
|
||||
"@cropImage": {},
|
||||
"customer": "Pelanggan",
|
||||
"@customer": {},
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Operasi penghapusan gagal",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Hapus Part",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Hapus Part ini dari database",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Operasi penghapusan berhasil",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Deskripsi",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Tampilkan tombol pesanan pembelian di layar beranda",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Tampilkan Pesanan Penjualan",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Tampilkan tombol pesanan penjualan di layar beranda",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Kata Kunci",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Label Printing",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Enable label printing",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No location specified",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stock location updated",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Nama",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Tidak Tersambung",
|
||||
"@notConnected": {},
|
||||
"notes": "Catatan",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Tidak ada subkategori",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Tidak ada subkategori tersedia",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Kata sandi tidak boleh kosong",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Akun Anda tidak memiliki izin yang diperlukan untuk melakukan tindakan ini",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Izin Diperlukan",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server tidak dipilih",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Pengiriman",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Tambahkan Pengiriman",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Terkirim",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Harga",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Situs",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Alloca stock",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Scorte Assegnate",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Mostra le note di rilascio dell'app",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Impostazioni App",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Scansione codice a barre in pausa",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Premi oppure tieni premuti per mettere in pausa la scansione",
|
||||
"barcodeScanPause": "Tocca per mettere in pausa la scansione",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scansiona per assegnare codice a barre",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Aziende",
|
||||
"@companies": {},
|
||||
"complete": "Completato",
|
||||
"@complete": {},
|
||||
"completeOrder": "Ordine completo",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Data di completamento",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configurare le impostazioni del server",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Operazione di eliminazione fallita",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Sei sicuro di voler eliminare questa immagine?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Elimina immagine",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Elimina immagine",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Elimina Articolo",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Rimuovi quest'articolo dal database",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Operazione di eliminazione riuscita",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Data di consegna",
|
||||
"@deliveryDate": {},
|
||||
"description": "Descrizione",
|
||||
"@description": {},
|
||||
"destination": "Destinazione",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Mostra il pulsante ordine d'acquisto nella schermata home",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Mostra Spedizioni",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Mostra le spedizioni in sospeso nella schermata home",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Mostra ordini di vendita",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Mostra bottone ordine di vendita sulla schermata principale",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Combinazione nome utente e password non valida",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Fattura",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Numero Fattura",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Problema",
|
||||
"@issue": {},
|
||||
"issueDate": "Data di emissione",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Parole Chiave",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Driver Etichetta",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Seleziona Il Driver Della Stampante Etichette",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Etichetta in stampa",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Abilita stampa etichette",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Crea nuova ubicazione di magazzino",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Posizione Predefinita",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Nessuna ubicazione specificata",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Ubicazione di magazzino aggiornata",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Nome",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Non connesso",
|
||||
"@notConnected": {},
|
||||
"notes": "Note",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "Nessuna immagine disponibile",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "Nessun prezzo disponibile",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Nessun dato trovato per questo articolo",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Nessuna sotto categoria",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Nessuna sottocategoria disponibile",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "La password non può essere vuota",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "In sospeso",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Non disponi dei permessi per eseguire l'azione",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Autorizzazione necessaria",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server non selezionato",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Spedizione",
|
||||
"@shipment": {},
|
||||
"shipments": "Spedizioni",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Spedizioni in sospeso",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Aggiungi Spedizione",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Controlla spedizione",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Segna questa spedizione come controllata",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Spedizione Controllata",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Data di spedizione",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Modifica spedizione",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Riferimento della spedizione",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Invia Spedizione",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Deseleziona Spedizione",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Contrassegna questa spedizione come non controllata",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Spedizione Aggiornata",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Spedito",
|
||||
"@shipped": {},
|
||||
"sku": "Codice articolo",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Prezzo Totale",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Numero Di Tracking",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Trasferisci",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Sito Web",
|
||||
"@website": {},
|
||||
"yes": "Si",
|
||||
"@yes": {},
|
||||
"price": "Prezzo",
|
||||
"@price": {},
|
||||
"priceRange": "Fascia di Prezzo",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Valuta",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Divergenze di prezzo",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "Nessun prezzo disponibile",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Nessun dato trovato per questo articolo",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Sei sicuro di voler eliminare questa immagine?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Elimina immagine",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Elimina immagine",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "在庫の割り当て",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "アプリのリリースノートを表示",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "アプリ設定",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "バーコードスキャンを一時停止中",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "スキャンを一時停止するにはタップまたはホールドします",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "スキャンしてバーコードを割り当てます",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "会社",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "完了日",
|
||||
"@completionDate": {},
|
||||
"configureServer": "サーバー設定",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "削除操作に失敗しました",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "部品を削除",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "データベースからこの部品を削除します",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "操作の削除に成功しました",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "説明",
|
||||
"@description": {},
|
||||
"destination": "保存先",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "注文ボタンをホーム画面に表示",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "注文を表示",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "ホーム画面に注文ボタンを表示",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "無効なユーザー名/パスワードの組み合わせです。",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "問題",
|
||||
"@issue": {},
|
||||
"issueDate": "発行日",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "キーワード",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "ラベル印刷",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "ラベル印刷を有効化",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "新しい在庫場所を作成",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "在庫場所が指定されていません",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "在庫場所を更新しました",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "名前",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "接続されていません",
|
||||
"@notConnected": {},
|
||||
"notes": "メモ",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "サブカテゴリはありません",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "利用可能なサブ在庫場所がありません",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "パスワードは空欄にできません。",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "操作を行う権限がありません",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "権限が必要です",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "サーバーが選択されていません",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "発送品",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "出荷を追加",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "出荷済み",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "合計金額",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "転送",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Webサイト",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -4,25 +4,25 @@
|
|||
"@appTitle": {
|
||||
"description": "InvenTree application title string"
|
||||
},
|
||||
"ok": "OK",
|
||||
"ok": "확인",
|
||||
"@ok": {
|
||||
"description": "OK"
|
||||
},
|
||||
"about": "About",
|
||||
"about": "정보",
|
||||
"@about": {},
|
||||
"accountDetails": "Account Details",
|
||||
"accountDetails": "계정 정보",
|
||||
"@accountDetails": {},
|
||||
"actions": "Actions",
|
||||
"actions": "작업",
|
||||
"@actions": {
|
||||
"description": ""
|
||||
},
|
||||
"actionsNone": "No actions available",
|
||||
"actionsNone": "실행 가능한 작업 없음",
|
||||
"@actionsNone": {},
|
||||
"add": "추가",
|
||||
"@add": {
|
||||
"description": "add"
|
||||
},
|
||||
"addStock": "Add Stock",
|
||||
"addStock": "재고 추가",
|
||||
"@addStock": {
|
||||
"description": "add stock"
|
||||
},
|
||||
|
|
@ -42,65 +42,67 @@
|
|||
"@aspectRatio3x2": {},
|
||||
"aspectRatio4x3": "4:3",
|
||||
"@aspectRatio4x3": {},
|
||||
"aspectRatioSquare": "Square (1:1)",
|
||||
"aspectRatioSquare": "정사각형 (1:1)",
|
||||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Allocate Stock",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "앱 릴리즈 노트 표시",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "앱 설정",
|
||||
"@appSettings": {},
|
||||
"appSettingsDetails": "Configure InvenTree app settings",
|
||||
"@appSettingsDetails": {},
|
||||
"assignedToMe": "Assigned to Me",
|
||||
"assignedToMe": "나에게 할당됨",
|
||||
"@assignedToMe": {},
|
||||
"assignedToMeDetail": "Show orders which are assigned to me",
|
||||
"@assignedToMeDetail": {},
|
||||
"attachments": "Attachments",
|
||||
"attachments": "첨부",
|
||||
"@attachments": {},
|
||||
"attachImage": "Attach Image",
|
||||
"attachImage": "사진 첨부",
|
||||
"@attachImage": {
|
||||
"description": "Attach an image"
|
||||
},
|
||||
"attachmentNone": "No attachments found",
|
||||
"attachmentNone": "첨부 파일이 없음",
|
||||
"@attachmentNone": {},
|
||||
"attachmentNoneDetail": "No attachments found",
|
||||
"attachmentNoneDetail": "첨부 파일이 없음",
|
||||
"@attachmentNoneDetail": {},
|
||||
"attachmentSelect": "Select attachment",
|
||||
"attachmentSelect": "첨부파일 선택",
|
||||
"@attachmentSelect": {},
|
||||
"attention": "Attention",
|
||||
"@attention": {},
|
||||
"available": "Available",
|
||||
"available": "사용가능",
|
||||
"@available": {},
|
||||
"availableStock": "Available Stock",
|
||||
"@availableStock": {},
|
||||
"barcodes": "Barcodes",
|
||||
"barcodes": "바코드",
|
||||
"@barcodes": {},
|
||||
"barcodeSettings": "Barcode Settings",
|
||||
"barcodeSettings": "바코드 설정",
|
||||
"@barcodeSettings": {},
|
||||
"barcodeAssign": "Assign Barcode",
|
||||
"barcodeAssign": "바코드 할당",
|
||||
"@barcodeAssign": {},
|
||||
"barcodeAssignDetail": "Scan custom barcode to assign",
|
||||
"barcodeAssignDetail": "커스텀 바코드 할당",
|
||||
"@barcodeAssignDetail": {},
|
||||
"barcodeAssigned": "Barcode assigned",
|
||||
"barcodeAssigned": "바코드 할당됨",
|
||||
"@barcodeAssigned": {},
|
||||
"barcodeError": "Barcode scan error",
|
||||
"barcodeError": "바코드 스캔 오류",
|
||||
"@barcodeError": {},
|
||||
"barcodeInUse": "Barcode already assigned",
|
||||
"barcodeInUse": "이미 바코드가 할당됨",
|
||||
"@barcodeInUse": {},
|
||||
"barcodeMissingHash": "Barcode hash data missing from response",
|
||||
"barcodeMissingHash": "바코드 해시 데이터 응답 없음",
|
||||
"@barcodeMissingHash": {},
|
||||
"barcodeNoMatch": "No match for barcode",
|
||||
"barcodeNoMatch": "바코드가 일치하지 않음",
|
||||
"@barcodeNoMatch": {},
|
||||
"barcodeNotAssigned": "Barcode not assigned",
|
||||
"barcodeNotAssigned": "바코드가 할당되지 않음",
|
||||
"@barcodeNotAssigned": {},
|
||||
"barcodeScanPart": "Scan part barcode",
|
||||
"barcodeScanPart": "스캔 파트 바코드",
|
||||
"@barcodeScanPart": {},
|
||||
"barcodeReceivePart": "Scan barcode to receive part",
|
||||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Barcode scanning paused",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tap or hold to pause scanning",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scan to assign barcode",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Companies",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configure server settings",
|
||||
|
|
@ -188,7 +194,7 @@
|
|||
"@confirmScanDetail": {},
|
||||
"connectionRefused": "Connection Refused",
|
||||
"@connectionRefused": {},
|
||||
"count": "Count",
|
||||
"count": "수량",
|
||||
"@count": {
|
||||
"description": "Count"
|
||||
},
|
||||
|
|
@ -198,13 +204,13 @@
|
|||
},
|
||||
"credits": "Credits",
|
||||
"@credits": {},
|
||||
"crop": "Crop",
|
||||
"crop": "자르기",
|
||||
"@crop": {},
|
||||
"cropImage": "Crop Image",
|
||||
"cropImage": "이미지 자르기",
|
||||
"@cropImage": {},
|
||||
"customer": "Customer",
|
||||
"customer": "고객",
|
||||
"@customer": {},
|
||||
"customers": "Customers",
|
||||
"customers": "고객",
|
||||
"@customers": {},
|
||||
"customerReference": "Customer Reference",
|
||||
"@customerReference": {},
|
||||
|
|
@ -214,27 +220,35 @@
|
|||
"@colorScheme": {},
|
||||
"colorSchemeDetail": "Select color scheme",
|
||||
"@colorSchemeDetail": {},
|
||||
"darkMode": "Dark Mode",
|
||||
"darkMode": "다크 모드",
|
||||
"@darkMode": {},
|
||||
"darkModeEnable": "Enable dark mode",
|
||||
"darkModeEnable": "다크 모드 활성화",
|
||||
"@darkModeEnable": {},
|
||||
"delete": "Delete",
|
||||
"delete": "삭제",
|
||||
"@delete": {},
|
||||
"deleteFailed": "Delete operation failed",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Delete Part",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Remove this part from the database",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Delete operation successful",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Description",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
"@destination": {},
|
||||
"destroyed": "Destroyed",
|
||||
"@destroyed": {},
|
||||
"details": "Details",
|
||||
"details": "상세내용",
|
||||
"@details": {
|
||||
"description": "details"
|
||||
},
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Show purchase order button on home screen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Show Sales Orders",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Show sales order button on home screen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "키워드",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Label Printing",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Enable label printing",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No location specified",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stock location updated",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Name",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Not Connected",
|
||||
"@notConnected": {},
|
||||
"notes": "Notes",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "No Subcategories",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No subcategories available",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "비밀번호는 비워둘 수 없습니다",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "귀하의 계정은 이 작업에 필요한 권한이 없습니다",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permission Required",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server not selected",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "웹사이트",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Allocate Stock",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Display app release notes",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "App Settings",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Barcode scanning paused",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tap or hold to pause scanning",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scan to assign barcode",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Companies",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configure server settings",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Delete operation failed",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Delete Part",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Remove this part from the database",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Delete operation successful",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Description",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Show purchase order button on home screen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Show Sales Orders",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Show sales order button on home screen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Keywords",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Label Printing",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Enable label printing",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No location specified",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stock location updated",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Name",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Not Connected",
|
||||
"@notConnected": {},
|
||||
"notes": "Notes",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "No Subcategories",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No subcategories available",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Password cannot be empty",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Your account does not have the required permissions to perform this action",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permission Required",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server not selected",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Allocate Stock",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Display app release notes",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Lietotnes iestatījumi",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Barcode scanning paused",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tap or hold to pause scanning",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scan to assign barcode",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Uzņēmumi",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configure server settings",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Delete operation failed",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Delete Part",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Remove this part from the database",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Delete operation successful",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Apraksts",
|
||||
"@description": {},
|
||||
"destination": "Mērķis",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Show purchase order button on home screen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Show Sales Orders",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Show sales order button on home screen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Keywords",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Label Printing",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Enable label printing",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No location specified",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stock location updated",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Name",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Not Connected",
|
||||
"@notConnected": {},
|
||||
"notes": "Notes",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "No Subcategories",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No subcategories available",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Password cannot be empty",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Your account does not have the required permissions to perform this action",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permission Required",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server not selected",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -42,10 +42,12 @@
|
|||
"@aspectRatio3x2": {},
|
||||
"aspectRatio4x3": "4:3",
|
||||
"@aspectRatio4x3": {},
|
||||
"aspectRatioSquare": "Square (1:1)",
|
||||
"aspectRatioSquare": "Vierkant (1:1)",
|
||||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Voorraad Toewijzen",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Toegewezen voorraad",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "App release notities weergeven",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "App Instellingen",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Barcode scannen gepauzeerd",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tik of houd om scannen te pauzeren",
|
||||
"barcodeScanPause": "Klik om scannen te pauzeren",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scan om streepjescode toe te wijzen",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Bedrijven",
|
||||
"@companies": {},
|
||||
"complete": "Gereed",
|
||||
"@complete": {},
|
||||
"completeOrder": "Order Voltooien",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Datum van afronding",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configureer server instellingen",
|
||||
|
|
@ -198,9 +204,9 @@
|
|||
},
|
||||
"credits": "Credits",
|
||||
"@credits": {},
|
||||
"crop": "Crop",
|
||||
"crop": "Bijsnijden",
|
||||
"@crop": {},
|
||||
"cropImage": "Crop Image",
|
||||
"cropImage": "Afbeelding bijsnijden",
|
||||
"@cropImage": {},
|
||||
"customer": "Klant",
|
||||
"@customer": {},
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Verwijderen mislukt",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Weet u zeker dat u deze afbeelding wilt verwijderen?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Afbeelding verwijderen",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Afbeelding verwijderen",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Onderdeel Verwijderen",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Verwijder dit onderdeel uit de database",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Succesvol verwijderd",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Leveringsdatum",
|
||||
"@deliveryDate": {},
|
||||
"description": "Omschrijving",
|
||||
"@description": {},
|
||||
"destination": "Bestemming:",
|
||||
|
|
@ -240,9 +254,9 @@
|
|||
},
|
||||
"documentation": "Documentatie",
|
||||
"@documentation": {},
|
||||
"downloadComplete": "Download Complete",
|
||||
"downloadComplete": "Download voltooid",
|
||||
"@downloadComplete": {},
|
||||
"downloadError": "Error downloading image",
|
||||
"downloadError": "Fout bij downloaden afbeelding",
|
||||
"@downloadError": {},
|
||||
"downloading": "Bestand wordt gedownload",
|
||||
"@downloading": {},
|
||||
|
|
@ -268,7 +282,7 @@
|
|||
"@editItem": {},
|
||||
"editLineItem": "Voorraadartikel bewerken",
|
||||
"@editLineItem": {},
|
||||
"email": "Email",
|
||||
"email": "E-mailadres",
|
||||
"@email": {},
|
||||
"enterPassword": "Wachtwoord invoeren",
|
||||
"@enterPassword": {},
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Inkooporder knop op startscherm weergeven",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Verzending weergeven",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Toon Leveringen in afwachting op het startscherm",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Toon Verkooporders",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Toon verkooporder knop op startscherm",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Ongeldige gebruikersnaam / wachtwoord combinatie",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Factuur",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Factuur nummer",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Probleem",
|
||||
"@issue": {},
|
||||
"issueDate": "Uitgiftedatum",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Trefwoorden",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label printer",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Selecteer Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Label afdrukken",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Label afdrukken inschakelen",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Creëer nieuwe voorraadlocatie",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Standaard locatie",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Geen locatie opgegeven",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Voorraadlocatie bijgewerkt",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Naam",
|
||||
"@name": {},
|
||||
"no": "Nee",
|
||||
"@no": {},
|
||||
"notApplicable": "N.v.t. ",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Niet verbonden",
|
||||
"@notConnected": {},
|
||||
"notes": "Opmerkingen",
|
||||
|
|
@ -530,8 +562,12 @@
|
|||
"@noResponse": {},
|
||||
"noResults": "Geen Resultaten",
|
||||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"noImageAvailable": "Geen afbeelding beschikbaar",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "Geen prijzen beschikbaar",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Er zijn geen prijsgegevens gevonden voor dit deel",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Geen Subcategorieën",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Geen subcategorieën beschikbaar",
|
||||
|
|
@ -624,11 +660,13 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Wachtwoord mag niet leeg zijn",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "In behandeling",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "U heeft niet de vereiste rechten om deze actie uit te voeren",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Toestemming Vereist",
|
||||
"@permissionRequired": {},
|
||||
"phone": "Phone",
|
||||
"phone": "Telefoon",
|
||||
"@phone": {},
|
||||
"printLabel": "Print Label",
|
||||
"@printLabel": {},
|
||||
|
|
@ -724,7 +762,7 @@
|
|||
"@reference": {},
|
||||
"refresh": "Vernieuwen",
|
||||
"@refresh": {},
|
||||
"rotateClockwise": "Rotate 90° clockwise",
|
||||
"rotateClockwise": "90° rechtsom draaien",
|
||||
"@rotateClockwise": {},
|
||||
"refreshing": "Verversen…",
|
||||
"@refreshing": {},
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server niet geselecteerd",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Levering",
|
||||
"@shipment": {},
|
||||
"shipments": "Verzendingen",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Leveringen in behandeling",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Verzending toevoegen",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Controleer Levering",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Markeer deze levering als gecontroleerd",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Levering gecontroleerd",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Leverings Datum",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Wijzig levering",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Verzending versturen",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Verzending uitvinken",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Markeer deze levering als niet gecontroleerd",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Verzending bijgewerkt",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Verzonden",
|
||||
"@shipped": {},
|
||||
"sku": "Artikelnummer",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Totaalprijs",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Traceernummer",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Verplaats",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1084,7 +1148,7 @@
|
|||
"@uploadFailed": {},
|
||||
"uploadSuccess": "Bestand geüpload",
|
||||
"@uploadSuccess": {},
|
||||
"uploadImage": "Upload Image",
|
||||
"uploadImage": "Afbeelding Uploaden",
|
||||
"@uploadImage": {},
|
||||
"usedIn": "Wordt Gebruikt In",
|
||||
"@usedIn": {},
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"yes": "Ja",
|
||||
"@yes": {},
|
||||
"price": "Prijs",
|
||||
"@price": {},
|
||||
"priceRange": "Prijs bereik",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Munteenheid",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Prijsverschillen",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "Geen prijzen beschikbaar",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Er zijn geen prijsgegevens gevonden voor dit deel",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Tildel lagerbeholdning",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Vis appens utgivelsesnotater",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Appinnstillinger",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Skanning satt på pause",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Trykk eller hold for å pause skanning",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Skann for å tildele strekkode",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Firma",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Fullført dato",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Konfigurer serverinnstillinger",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Slettingen mislyktes",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Slett del",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Fjern denne delen fra databasen",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Sletting var vellykket",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Beskrivelse",
|
||||
"@description": {},
|
||||
"destination": "Destinasjon",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Vis innkjøpsordre-knappen på startside",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Vis salgsordrer",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Vis salgsordre-knappen på startside",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Ugyldig brukernavn- / passordkombinasjon",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Send",
|
||||
"@issue": {},
|
||||
"issueDate": "Sendt dato",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Nøkkelord",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Etikettutskrift",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Aktiver etikettutskrift",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Opprett ny lagerplassering",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Ingen plassering spesifisert",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Lagerplassering oppdatert",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Navn",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Ikke tilkoblet",
|
||||
"@notConnected": {},
|
||||
"notes": "Notater",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Ingen underkategorier",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Ingen underkategorier tilgjengelig",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Passordet kan ikke være tomt",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Kontoen din har ikke tillatelse til å utføre denne handlingen",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Tillatelse kreves",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server ikke valgt",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Forsendelser",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Legg til forsendelse",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Sendt",
|
||||
"@shipped": {},
|
||||
"sku": "SKU-kode",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total pris",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Overfør",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Nettside",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -36,23 +36,25 @@
|
|||
"@appDetails": {},
|
||||
"allocated": "Przydzielono",
|
||||
"@allocated": {},
|
||||
"aspectRatio16x9": "",
|
||||
"aspectRatio16x9": "16:9",
|
||||
"@aspectRatio16x9": {},
|
||||
"aspectRatio3x2": "3:2",
|
||||
"@aspectRatio3x2": {},
|
||||
"aspectRatio4x3": "4:3",
|
||||
"@aspectRatio4x3": {},
|
||||
"aspectRatioSquare": "Square (1:1)",
|
||||
"aspectRatioSquare": "Kwadrat (1:1)",
|
||||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Przydziel zapasy",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Wyświetl informacje o historii aktualizacji",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Ustawienia aplikacji",
|
||||
"@appSettings": {},
|
||||
"appSettingsDetails": "Konfiguruj ustawienia aplikacji InvenTree",
|
||||
"@appSettingsDetails": {},
|
||||
"assignedToMe": "",
|
||||
"assignedToMe": "Przypisane do mnie",
|
||||
"@assignedToMe": {},
|
||||
"assignedToMeDetail": "Pokaż zlecenia, które zostały do mnie przypisane",
|
||||
"@assignedToMeDetail": {},
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Skanowanie kodów kreskowych wstrzymane",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Dotknij lub przytrzymaj, aby wstrzymać skanowanie",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Zeskanuj aby przypisać kod kreskowy",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Firmy",
|
||||
"@companies": {},
|
||||
"complete": "Zakończono",
|
||||
"@complete": {},
|
||||
"completeOrder": "Zakończ zamówienie",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Data ukończenia",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Konfiguruj ustawienia serwera",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Usuwanie nie powiodło się",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Czy na pewno chcesz usunąć ten obraz?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Usuń obraz",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Usuń obraz",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Usuń Komponent",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Usuń ten komponent z bazy danych",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Usuwanie zakończone powodzeniem",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Opis",
|
||||
"@description": {},
|
||||
"destination": "Cel:",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Pokaż przycisk zamówienia zakupu na ekranie głównym",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Pokaż zlecenia sprzedaży",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Pokaż przycisk zleceń sprzedaży na ekrani głównym",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Nieprawidłowy login lub hasło",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Problem",
|
||||
"@issue": {},
|
||||
"issueDate": "Data Wystawienia",
|
||||
|
|
@ -446,10 +468,14 @@
|
|||
"@itemInLocation": {},
|
||||
"itemDeleted": "Element został usunięty",
|
||||
"@itemDeleted": {},
|
||||
"itemUpdated": "Item updated",
|
||||
"itemUpdated": "Element został zaktualizowany.",
|
||||
"@itemUpdated": {},
|
||||
"keywords": "Słowa kluczowe",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Drukowanie etykiet",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Włącz drukowanie etykiet",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Utwórz nową pozycję magazynową",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Nie określono lokacji",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Lokalizacja stanu magazynowego została zaktualizowana",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Nazwa",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Nie połączony",
|
||||
"@notConnected": {},
|
||||
"notes": "Notatki",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "Brak dostępnych obrazów",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "Cena nie jest dostępna",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Nie znaleziono danych dotyczących cen dla tej części",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Brak podkategorii",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Brak dostępnych podkategorii",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Hasło nie może być puste",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Nie masz wystarczających uprawnień do wykonania tej czynności",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Wymagane uprawnienia",
|
||||
|
|
@ -744,7 +782,7 @@
|
|||
"@reportBug": {},
|
||||
"reportBugDescription": "Prześlij raport o błędzie (wymaga konta GitHub)",
|
||||
"@reportBugDescription": {},
|
||||
"responsible": "Responsible",
|
||||
"responsible": "Odpowiedzialny",
|
||||
"@responsible": {},
|
||||
"results": "Wyniki",
|
||||
"@results": {},
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Serwer nie wybrany",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Wysyłki",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Dodaj wysyłkę",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Wysłano",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Cena całkowita",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Przenieś",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Strona WWW",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Cena",
|
||||
"@price": {},
|
||||
"priceRange": "Zakres cen",
|
||||
|
|
@ -1124,9 +1190,9 @@
|
|||
"@saleHistory": {},
|
||||
"supplierPricing": "Supplier Pricing",
|
||||
"@supplierPricing": {},
|
||||
"bomCost": "BOM Cost",
|
||||
"bomCost": "Koszt BOM",
|
||||
"@bomCost": {},
|
||||
"internalCost": "Internal Cost",
|
||||
"internalCost": "Koszt wewnętrzny",
|
||||
"@internalCost": {},
|
||||
"variantCost": "Variant Cost",
|
||||
"@variantCost": {},
|
||||
|
|
@ -1134,18 +1200,8 @@
|
|||
"@overallPricing": {},
|
||||
"pricingOverrides": "Pricing Overrides",
|
||||
"@pricingOverrides": {},
|
||||
"currency": "Currency",
|
||||
"currency": "Waluta",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Usuń obraz",
|
||||
"@deleteImage": {}
|
||||
"priceBreaks": "Widełki cenowe",
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Estoque alocado",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Exibir notas de versão do aplicativo",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Configurações do App",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Escaneamento de código de barras pausado",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Toque ou segure para pausar o escaneamento",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Escaneie para atribuir código de barras",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,7 +180,11 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Empresas",
|
||||
"@companies": {},
|
||||
"completionDate": "Completion Date",
|
||||
"complete": "Concluído",
|
||||
"@complete": {},
|
||||
"completeOrder": "Finalizar pedido",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Data de conclusão",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Definir as configurações do servidor",
|
||||
"@configureServer": {},
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "A operação de apagar falhou",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Tem certeza de que deseja excluir essa imagem?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Excluir Imagem",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Excluir Imagem",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Deletar Peça",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Remova essa peça do banco de dados",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Apagado com Sucesso",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Descrição",
|
||||
"@description": {},
|
||||
"destination": "Destino",
|
||||
|
|
@ -300,11 +314,11 @@
|
|||
"@expiryDate": {},
|
||||
"expiryExpired": "Vencido",
|
||||
"@expiryExpired": {},
|
||||
"expiryStale": "Stale",
|
||||
"expiryStale": "Inativo",
|
||||
"@expiryStale": {},
|
||||
"extraLineItem": "Extra Line Item",
|
||||
"extraLineItem": "Item de Linha extra",
|
||||
"@extraLineItem": {},
|
||||
"extraLineItems": "Extra Line Items",
|
||||
"extraLineItems": "Itens de linha extra",
|
||||
"@extraLineItems": {},
|
||||
"feedback": "Feedback",
|
||||
"@feedback": {},
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Mostrar botão de ordem de compra na tela inicial",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Mostrar Pedidos de Venda",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Mostrar Pedidos de Venda na tela inicial",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Usuario ou senha invalidos",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Emitir",
|
||||
"@issue": {},
|
||||
"issueDate": "Data de emissao",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Palavras chave",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Impressão de Etiqueta",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Habilitar Impressão de Etiqueta",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Criar nova localizacao no estoque",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Nenhuma localizacao especificada",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Localizacao no estoque atualizada",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Nome",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Nao conectado",
|
||||
"@notConnected": {},
|
||||
"notes": "Notas",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "Nenhuma imagem disponível",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "Nenhum preço disponível",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Nenhuma subcategoria",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Nenhuma subcategoria disponível",
|
||||
|
|
@ -596,7 +632,7 @@
|
|||
"@partNoResults": {},
|
||||
"partPricing": "Preço de Peça",
|
||||
"@partPricing": {},
|
||||
"partPricingSettingDetail": "Display part pricing information",
|
||||
"partPricingSettingDetail": "Exibir informações de preço de parte",
|
||||
"@pricingSettingDetail": {},
|
||||
"partSettings": "Configurações de Peça",
|
||||
"@partSettings": {},
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "A senha não pode estar em branco",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Sua conta não possui as permissões necessárias para realizar esta ação",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permissão Necessária",
|
||||
|
|
@ -670,9 +708,9 @@
|
|||
"@profileTapToCreate": {},
|
||||
"projectCode": "Código do projeto",
|
||||
"@projectCode": {},
|
||||
"purchaseOrderConfirmScan": "Confirm Scan Data",
|
||||
"purchaseOrderConfirmScan": "Confirmar dados de varredura",
|
||||
"@purchaseOrderConfirmScan": {},
|
||||
"purchaseOrderConfirmScanDetail": "Confirm details when scanning in items",
|
||||
"purchaseOrderConfirmScanDetail": "Confirmar detalhes ao escanear itens",
|
||||
"@purchaseOrderConfirmScanDetail": {},
|
||||
"purchaseOrderEnable": "Habilitar Pedidos de Compra",
|
||||
"@purchaseOrderEnable": {},
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Servidor não selecionado",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Envios",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Adicionar envio",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Enviado",
|
||||
"@shipped": {},
|
||||
"sku": "Código (SKU)",
|
||||
|
|
@ -1040,7 +1102,7 @@
|
|||
"@timeout": {
|
||||
"description": ""
|
||||
},
|
||||
"toggleTorch": "Toggle Torch",
|
||||
"toggleTorch": "Lig/Desl. lanterna",
|
||||
"@toggleTorch": {},
|
||||
"tokenError": "Error de token",
|
||||
"@tokenError": {},
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Preço Total",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transferir",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,42 +1174,34 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Página Web",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Preço",
|
||||
"@price": {},
|
||||
"priceRange": "Faixa de Preço",
|
||||
"@priceRange": {},
|
||||
"priceOverrideMin": "Minimum Price Override",
|
||||
"priceOverrideMin": "Substituição de preço mínimo",
|
||||
"@priceOverrideMin": {},
|
||||
"priceOverrideMax": "Maximum Price Override",
|
||||
"priceOverrideMax": "Substituição de preço máximo",
|
||||
"@priceOverrideMax": {},
|
||||
"salePrice": "Preço de Venda",
|
||||
"@salePrice": {},
|
||||
"saleHistory": "Histórico de Vendas",
|
||||
"@saleHistory": {},
|
||||
"supplierPricing": "Supplier Pricing",
|
||||
"supplierPricing": "Preço do fornecedor",
|
||||
"@supplierPricing": {},
|
||||
"bomCost": "BOM Cost",
|
||||
"bomCost": "Custo de LDM",
|
||||
"@bomCost": {},
|
||||
"internalCost": "Internal Cost",
|
||||
"internalCost": "Custo Interno",
|
||||
"@internalCost": {},
|
||||
"variantCost": "Variant Cost",
|
||||
"variantCost": "Custo Variante",
|
||||
"@variantCost": {},
|
||||
"overallPricing": "Overall Pricing",
|
||||
"overallPricing": "Precificação Geral",
|
||||
"@overallPricing": {},
|
||||
"pricingOverrides": "Pricing Overrides",
|
||||
"pricingOverrides": "Sobrescrever Preço",
|
||||
"@pricingOverrides": {},
|
||||
"currency": "Moeda",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Tem certeza de que deseja excluir essa imagem?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Excluir Imagem",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Excluir Imagem",
|
||||
"@deleteImage": {}
|
||||
"priceBreaks": "Quebra de Preço",
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -42,19 +42,21 @@
|
|||
"@aspectRatio3x2": {},
|
||||
"aspectRatio4x3": "4:3",
|
||||
"@aspectRatio4x3": {},
|
||||
"aspectRatioSquare": "Square (1:1)",
|
||||
"aspectRatioSquare": "Quadrado (1:1)",
|
||||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Alocar estoque",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Exibir notas de versão do aplicativo",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Configurações do App",
|
||||
"@appSettings": {},
|
||||
"appSettingsDetails": "Configurar os parâmetros do InvenTree",
|
||||
"@appSettingsDetails": {},
|
||||
"assignedToMe": "Assigned to Me",
|
||||
"assignedToMe": "Atribuído a Mim",
|
||||
"@assignedToMe": {},
|
||||
"assignedToMeDetail": "Show orders which are assigned to me",
|
||||
"assignedToMeDetail": "Mostrar pedidos atribuídos a mim",
|
||||
"@assignedToMeDetail": {},
|
||||
"attachments": "Anexos",
|
||||
"@attachments": {},
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Verificação do código de barras pausada",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Toque ou segure para pausar a verificação",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Escaneie para atribuir código de barras",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -146,7 +148,7 @@
|
|||
"@build": {},
|
||||
"building": "Compilando",
|
||||
"@building": {},
|
||||
"cameraCreationError": "Could not open camera controller",
|
||||
"cameraCreationError": "Não foi possível aceder ao controlo da câmara",
|
||||
"@cameraCreationError": {},
|
||||
"cameraInternal": "Câmera Interna",
|
||||
"@cameraInternal": {},
|
||||
|
|
@ -168,7 +170,7 @@
|
|||
"@categoryUpdated": {},
|
||||
"company": "Empresa",
|
||||
"@company": {},
|
||||
"companyAdd": "Add Company",
|
||||
"companyAdd": "Adicionar Empresa",
|
||||
"@companyAdd": {},
|
||||
"companyEdit": "Editar empresa",
|
||||
"@companyEdit": {},
|
||||
|
|
@ -178,7 +180,11 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Empresas",
|
||||
"@companies": {},
|
||||
"completionDate": "Completion Date",
|
||||
"complete": "Finalizar",
|
||||
"@complete": {},
|
||||
"completeOrder": "Finalizar Encomenda",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Data de conclusão",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configurar os parâmetros do servidor de email",
|
||||
"@configureServer": {},
|
||||
|
|
@ -198,9 +204,9 @@
|
|||
},
|
||||
"credits": "Créditos",
|
||||
"@credits": {},
|
||||
"crop": "Crop",
|
||||
"crop": "Cortar",
|
||||
"@crop": {},
|
||||
"cropImage": "Crop Image",
|
||||
"cropImage": "Recortar Imagem",
|
||||
"@cropImage": {},
|
||||
"customer": "Cliente",
|
||||
"@customer": {},
|
||||
|
|
@ -210,9 +216,9 @@
|
|||
"@customerReference": {},
|
||||
"damaged": "Danificado",
|
||||
"@damaged": {},
|
||||
"colorScheme": "Color Scheme",
|
||||
"colorScheme": "Esquema de cores",
|
||||
"@colorScheme": {},
|
||||
"colorSchemeDetail": "Select color scheme",
|
||||
"colorSchemeDetail": "Seleccione o esquema de cores",
|
||||
"@colorSchemeDetail": {},
|
||||
"darkMode": "Modo Noturno",
|
||||
"@darkMode": {},
|
||||
|
|
@ -222,15 +228,23 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Falha ao excluir",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Excluir esta parte",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Remover esta peça da base de dados",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Excluído com sucesso",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Descrição",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
"destination": "Destino",
|
||||
"@destination": {},
|
||||
"destroyed": "Destruído",
|
||||
"@destroyed": {},
|
||||
|
|
@ -240,9 +254,9 @@
|
|||
},
|
||||
"documentation": "Documentação",
|
||||
"@documentation": {},
|
||||
"downloadComplete": "Download Complete",
|
||||
"downloadComplete": "Transferência concluída",
|
||||
"@downloadComplete": {},
|
||||
"downloadError": "Error downloading image",
|
||||
"downloadError": "Erro ao transferir imagem",
|
||||
"@downloadError": {},
|
||||
"downloading": "Baixando arquivo",
|
||||
"@downloading": {},
|
||||
|
|
@ -250,7 +264,7 @@
|
|||
"@edit": {
|
||||
"description": "edit"
|
||||
},
|
||||
"editAttachment": "Edit Attachment",
|
||||
"editAttachment": "Editar Anexo",
|
||||
"@editAttachment": {},
|
||||
"editCategory": "Editar categoria",
|
||||
"@editCategory": {},
|
||||
|
|
@ -296,15 +310,15 @@
|
|||
"@errorReportUpload": {},
|
||||
"errorReportUploadDetails": "Enviar relatórios de erros e registos anónimos",
|
||||
"@errorReportUploadDetails": {},
|
||||
"expiryDate": "Expiry Date",
|
||||
"expiryDate": "Data de Validade",
|
||||
"@expiryDate": {},
|
||||
"expiryExpired": "Expired",
|
||||
"expiryExpired": "Expirado",
|
||||
"@expiryExpired": {},
|
||||
"expiryStale": "Stale",
|
||||
"expiryStale": "Inativo",
|
||||
"@expiryStale": {},
|
||||
"extraLineItem": "Extra Line Item",
|
||||
"extraLineItem": "Adicionar Linha de Artigos Extra",
|
||||
"@extraLineItem": {},
|
||||
"extraLineItems": "Extra Line Items",
|
||||
"extraLineItems": "Adicionar Linhas de Artigos Extra",
|
||||
"@extraLineItems": {},
|
||||
"feedback": "Comentários",
|
||||
"@feedback": {},
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Mostrar botão de pedido de compra na tela inicial",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Mostrar Pedidos de Vendas",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Mostrar botão de pedido de compra na tela inicial",
|
||||
|
|
@ -426,59 +444,67 @@
|
|||
"@invalidHostDetails": {},
|
||||
"invalidPart": "Peça Inválida",
|
||||
"@invalidPart": {},
|
||||
"invalidPartCategory": "Invalid Part Category",
|
||||
"invalidPartCategory": "Categoria de Peças Inválida",
|
||||
"@invalidPartCategory": {},
|
||||
"invalidStockLocation": "Invalid Stock Location",
|
||||
"invalidStockLocation": "Localização de Estoque Inválida",
|
||||
"@invalidStockLocation": {},
|
||||
"invalidStockItem": "Invalid Stock Item",
|
||||
"invalidStockItem": "Artigo de Estoque Inválido",
|
||||
"@invalidStockItem": {},
|
||||
"invalidSupplierPart": "Invalid Supplier Part",
|
||||
"invalidSupplierPart": "Peça de fornecedor inválida",
|
||||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"invalidUsernamePassword": "O nome de utilizador ou a palavra-passe não estão corretos",
|
||||
"@invalidUsernamePassword": {},
|
||||
"issue": "Issue",
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Erro",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
"issueDate": "Data de emissão",
|
||||
"@issueDate": {},
|
||||
"issueOrder": "Issue Order",
|
||||
"issueOrder": "Emitir encomenda",
|
||||
"@issueOrder": {},
|
||||
"itemInLocation": "Item already in location",
|
||||
"itemInLocation": "O artigo já está no local",
|
||||
"@itemInLocation": {},
|
||||
"itemDeleted": "Item has been removed",
|
||||
"itemDeleted": "O artigo foi removido",
|
||||
"@itemDeleted": {},
|
||||
"itemUpdated": "Item updated",
|
||||
"itemUpdated": "O artigo foi atualizado",
|
||||
"@itemUpdated": {},
|
||||
"keywords": "Keywords",
|
||||
"keywords": "Palavras-chave",
|
||||
"@keywords": {},
|
||||
"labelPrinting": "Label Printing",
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Impressão de etiqueta",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Enable label printing",
|
||||
"labelPrintingDetail": "Ativar impressão de etiquetas",
|
||||
"@labelPrintingDetail": {},
|
||||
"labelTemplate": "Label Template",
|
||||
"labelTemplate": "Modelo de Etiqueta",
|
||||
"@labelTemplate": {},
|
||||
"labelSelectTemplate": "Select Label Template",
|
||||
"labelSelectTemplate": "Selecione o modelo de etiqueta",
|
||||
"@labelSelectTemplate": {},
|
||||
"labelSelectPrinter": "Select Label Printer",
|
||||
"labelSelectPrinter": "Selecionar impressora de etiqueta",
|
||||
"@labelSelectPrinter": {},
|
||||
"language": "Language",
|
||||
"language": "Idioma",
|
||||
"@language": {},
|
||||
"languageDefault": "Default system language",
|
||||
"languageDefault": "Idioma de sistema predefinido",
|
||||
"@languageDefault": {},
|
||||
"languageSelect": "Select Language",
|
||||
"languageSelect": "Selecionar Idioma",
|
||||
"@languageSelect": {},
|
||||
"lastStocktake": "Last Stocktake",
|
||||
"lastStocktake": "Último Balanço de Estoque",
|
||||
"@lastStocktake": {},
|
||||
"lastUpdated": "Ultima atualização",
|
||||
"@lastUpdated": {},
|
||||
"level": "Level",
|
||||
"level": "Nível",
|
||||
"@level": {},
|
||||
"lineItemAdd": "Add Line Item",
|
||||
"lineItemAdd": "Adicionar linha",
|
||||
"@lineItemAdd": {},
|
||||
"lineItem": "Line Item",
|
||||
"lineItem": "Linha",
|
||||
"@lineItem": {},
|
||||
"lineItems": "Itens de linha",
|
||||
"@lineItems": {},
|
||||
"lineItemUpdated": "Line item updated",
|
||||
"lineItemUpdated": "Linha atualizada",
|
||||
"@lineItemUpdated": {},
|
||||
"locateItem": "Locate stock item",
|
||||
"@locateItem": {},
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No location specified",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stock location updated",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Name",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Not Connected",
|
||||
"@notConnected": {},
|
||||
"notes": "Notes",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "No Subcategories",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No subcategories available",
|
||||
|
|
@ -570,7 +606,7 @@
|
|||
"@parametersSettingDetail": {},
|
||||
"parent": "Parent",
|
||||
"@parent": {},
|
||||
"parentCategory": "Parent Category",
|
||||
"parentCategory": "Categoria Principal",
|
||||
"@parentCategory": {},
|
||||
"parentLocation": "Parent Location",
|
||||
"@parentLocation": {},
|
||||
|
|
@ -610,27 +646,29 @@
|
|||
"@partCategory": {},
|
||||
"partCategoryTopLevel": "Top level part category",
|
||||
"@partCategoryTopLevel": {},
|
||||
"partCategories": "Part Categories",
|
||||
"partCategories": "Categorias de Peça",
|
||||
"@partCategories": {},
|
||||
"partDetails": "Part Details",
|
||||
"partDetails": "Detalhes da Peça",
|
||||
"@partDetails": {},
|
||||
"partNotes": "Part Notes",
|
||||
"partNotes": "Notas da Peça",
|
||||
"@partNotes": {},
|
||||
"partStock": "Part Stock",
|
||||
"partStock": "Estoque da Peça",
|
||||
"@partStock": {
|
||||
"description": "part stock"
|
||||
},
|
||||
"password": "Password",
|
||||
"password": "Palavra-passe",
|
||||
"@password": {},
|
||||
"passwordEmpty": "Password cannot be empty",
|
||||
"passwordEmpty": "A palavra-passe não pode estar vazia",
|
||||
"@passwordEmpty": {},
|
||||
"permissionAccountDenied": "Your account does not have the required permissions to perform this action",
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "A sua conta não tem as permissões necessárias para executar esta ação",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permission Required",
|
||||
"permissionRequired": "Permissão necessária",
|
||||
"@permissionRequired": {},
|
||||
"phone": "Phone",
|
||||
"phone": "Telefone",
|
||||
"@phone": {},
|
||||
"printLabel": "Print Label",
|
||||
"printLabel": "Imprimir Etiqueta",
|
||||
"@printLabel": {},
|
||||
"plugin": "Plugin",
|
||||
"@plugin": {},
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server not selected",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -42,10 +42,12 @@
|
|||
"@aspectRatio3x2": {},
|
||||
"aspectRatio4x3": "4:3",
|
||||
"@aspectRatio4x3": {},
|
||||
"aspectRatioSquare": "Square (1:1)",
|
||||
"aspectRatioSquare": "Pătrat (1:1)",
|
||||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Alocare Stoc",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Stocuri alocate",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Afișează notele de lansare a aplicației",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Setări Aplicație",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Scanare cod de bare întreruptă",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Atingeți sau țineți apăsat pentru a întrerupe scanarea",
|
||||
"barcodeScanPause": "Atingeți pentru a întrerupe scanarea",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scanează pentru a atribui cod de bare",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -168,7 +170,7 @@
|
|||
"@categoryUpdated": {},
|
||||
"company": "Companie",
|
||||
"@company": {},
|
||||
"companyAdd": "Add Company",
|
||||
"companyAdd": "Adăugare companie",
|
||||
"@companyAdd": {},
|
||||
"companyEdit": "Editare companie",
|
||||
"@companyEdit": {},
|
||||
|
|
@ -178,7 +180,11 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Companii",
|
||||
"@companies": {},
|
||||
"completionDate": "Completion Date",
|
||||
"complete": "Finalizare",
|
||||
"@complete": {},
|
||||
"completeOrder": "Comandă completă",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Data completării",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configurare setări server",
|
||||
"@configureServer": {},
|
||||
|
|
@ -198,9 +204,9 @@
|
|||
},
|
||||
"credits": "Credite",
|
||||
"@credits": {},
|
||||
"crop": "Crop",
|
||||
"crop": "Decupați",
|
||||
"@crop": {},
|
||||
"cropImage": "Crop Image",
|
||||
"cropImage": "Decupare imagine",
|
||||
"@cropImage": {},
|
||||
"customer": "Client",
|
||||
"@customer": {},
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Operațiune de ștergere eșuată",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Sunteți sigur că doriți să ștergeți această imagine?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Șterge imaginea",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Șterge imaginea",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Șterge Piesa",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Elimină această piesă din baza de date",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Operație de ștergere reușită",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Data livrării",
|
||||
"@deliveryDate": {},
|
||||
"description": "Descriere",
|
||||
"@description": {},
|
||||
"destination": "Destinație",
|
||||
|
|
@ -240,9 +254,9 @@
|
|||
},
|
||||
"documentation": "Documentație",
|
||||
"@documentation": {},
|
||||
"downloadComplete": "Download Complete",
|
||||
"downloadComplete": "Descărcare completă",
|
||||
"@downloadComplete": {},
|
||||
"downloadError": "Error downloading image",
|
||||
"downloadError": "Eroare la descărcarea imaginii",
|
||||
"@downloadError": {},
|
||||
"downloading": "Se descarcă fișierul",
|
||||
"@downloading": {},
|
||||
|
|
@ -268,7 +282,7 @@
|
|||
"@editItem": {},
|
||||
"editLineItem": "Editare element rând",
|
||||
"@editLineItem": {},
|
||||
"email": "Email",
|
||||
"email": "E-mail",
|
||||
"@email": {},
|
||||
"enterPassword": "Introdu parola",
|
||||
"@enterPassword": {},
|
||||
|
|
@ -302,9 +316,9 @@
|
|||
"@expiryExpired": {},
|
||||
"expiryStale": "",
|
||||
"@expiryStale": {},
|
||||
"extraLineItem": "Extra Line Item",
|
||||
"extraLineItem": "Elemente suplimentare",
|
||||
"@extraLineItem": {},
|
||||
"extraLineItems": "Extra Line Items",
|
||||
"extraLineItems": "Elemente suplimentare",
|
||||
"@extraLineItems": {},
|
||||
"feedback": "Feedback",
|
||||
"@feedback": {},
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Afișați butonul de achiziții pe ecranul principal",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Afișare livrări",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Arată transporturile în așteptare pe ecranul principal",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Arată Comenzile de Vânzări",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Afișare buton vânzări pe ecranul principal",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Combinație de nume utilizator / parolă invalida",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Factură",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Număr factură",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Problemă",
|
||||
"@issue": {},
|
||||
"issueDate": "Data emiterii",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Cuvinte cheie",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Etichetează șofer",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Selectați șofer de imprimante etichetă",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Printare etichete",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Permite tipărirea etichetei",
|
||||
|
|
@ -458,7 +484,7 @@
|
|||
"@labelTemplate": {},
|
||||
"labelSelectTemplate": "Selectați șablon de etichetă",
|
||||
"@labelSelectTemplate": {},
|
||||
"labelSelectPrinter": "Select Label Printer",
|
||||
"labelSelectPrinter": "Selectați imprimanta de etichete",
|
||||
"@labelSelectPrinter": {},
|
||||
"language": "Limba",
|
||||
"@language": {},
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Creează o nouă locație de stoc",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Locație implicită",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Nici o locaţie specificată",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Locație stoc actualizată",
|
||||
|
|
@ -504,7 +532,7 @@
|
|||
"@lost": {},
|
||||
"manufacturerPart": "",
|
||||
"@manufacturerPart": {},
|
||||
"manufacturerPartEdit": "Edit Manufacturer Part",
|
||||
"manufacturerPartEdit": "Editați piesa producătorului",
|
||||
"@manufacturerPartEdit": {},
|
||||
"manufacturerPartNumber": "Număr Serie Producător",
|
||||
"@manufacturerPartNumber": {},
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Nume",
|
||||
"@name": {},
|
||||
"no": "Nu",
|
||||
"@no": {},
|
||||
"notApplicable": "Indisponibil",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Neconectat",
|
||||
"@notConnected": {},
|
||||
"notes": "Notițe",
|
||||
|
|
@ -530,8 +562,12 @@
|
|||
"@noResponse": {},
|
||||
"noResults": "Niciun rezultat",
|
||||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"noImageAvailable": "Nici o imagine disponibilă",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "Nu există prețuri disponibile",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Nu au fost găsite date despre prețuri pentru această piesă",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Nu există subcategorii",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Nicio subcategorie disponibilă",
|
||||
|
|
@ -594,9 +630,9 @@
|
|||
"@partsNone": {},
|
||||
"partNoResults": "Nicio piesă care se potrivește",
|
||||
"@partNoResults": {},
|
||||
"partPricing": "Part Pricing",
|
||||
"partPricing": "Preț piesă",
|
||||
"@partPricing": {},
|
||||
"partPricingSettingDetail": "Display part pricing information",
|
||||
"partPricingSettingDetail": "Afișați informații despre preț",
|
||||
"@pricingSettingDetail": {},
|
||||
"partSettings": "Setări Piesa",
|
||||
"@partSettings": {},
|
||||
|
|
@ -624,11 +660,13 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Câmpul pentru Parola nu poate fi gol",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "În așteptare",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Contul dvs. nu are permisiunile necesare pentru a efectua această acțiune",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permisiune necesară",
|
||||
"@permissionRequired": {},
|
||||
"phone": "Phone",
|
||||
"phone": "Telefon",
|
||||
"@phone": {},
|
||||
"printLabel": "Printati Eticheta",
|
||||
"@printLabel": {},
|
||||
|
|
@ -646,506 +684,524 @@
|
|||
"@printLabelSuccess": {},
|
||||
"profile": "Profiluri",
|
||||
"@profile": {},
|
||||
"profileAdd": "Add Server Profile",
|
||||
"profileAdd": "Adaugă Profil Server",
|
||||
"@profileAdd": {},
|
||||
"profileConnect": "Connect to Server",
|
||||
"profileConnect": "Conectare la server",
|
||||
"@profileConnect": {},
|
||||
"profileEdit": "Edit Server Profile",
|
||||
"profileEdit": "Editează Profilul Serverului",
|
||||
"@profileEdit": {},
|
||||
"profileDelete": "Delete Server Profile",
|
||||
"profileDelete": "Ștergere profil server",
|
||||
"@profileDelete": {},
|
||||
"profileLogout": "Logout Profile",
|
||||
"profileLogout": "Deconectare profil",
|
||||
"@profileLogout": {},
|
||||
"profileName": "Profile Name",
|
||||
"profileName": "Nume profil",
|
||||
"@profileName": {},
|
||||
"profileNone": "No profiles available",
|
||||
"profileNone": "Nici un profil disponibil",
|
||||
"@profileNone": {},
|
||||
"profileNotSelected": "No Profile Selected",
|
||||
"profileNotSelected": "Nici un profil selectat",
|
||||
"@profileNotSelected": {},
|
||||
"profileSelect": "Select InvenTree Server",
|
||||
"profileSelect": "Selectați serverul InvenTree",
|
||||
"@profileSelect": {},
|
||||
"profileSelectOrCreate": "Select server or create a new profile",
|
||||
"profileSelectOrCreate": "Selectează server sau creează un profil nou",
|
||||
"@profileSelectOrCreate": {},
|
||||
"profileTapToCreate": "Tap to create or select a profile",
|
||||
"profileTapToCreate": "Atingeți pentru a crea sau a selecta un profil",
|
||||
"@profileTapToCreate": {},
|
||||
"projectCode": "Project Code",
|
||||
"projectCode": "Cod proiect",
|
||||
"@projectCode": {},
|
||||
"purchaseOrderConfirmScan": "Confirm Scan Data",
|
||||
"purchaseOrderConfirmScan": "Confirmați datele scanate",
|
||||
"@purchaseOrderConfirmScan": {},
|
||||
"purchaseOrderConfirmScanDetail": "Confirm details when scanning in items",
|
||||
"purchaseOrderConfirmScanDetail": "Confirmați detaliile la scanarea articolelor",
|
||||
"@purchaseOrderConfirmScanDetail": {},
|
||||
"purchaseOrderEnable": "Enable Purchase Orders",
|
||||
"purchaseOrderEnable": "Activați comenzile de achiziție",
|
||||
"@purchaseOrderEnable": {},
|
||||
"purchaseOrderEnableDetail": "Enable purchase order functionality",
|
||||
"purchaseOrderEnableDetail": "Activează funcționalitatea comenzii de achiziție",
|
||||
"@purchaseOrderEnableDetail": {},
|
||||
"purchaseOrderShowCamera": "Camera Shortcut",
|
||||
"purchaseOrderShowCamera": "Scurtătura Cameră",
|
||||
"@purchaseOrderShowCamera": {},
|
||||
"purchaseOrderShowCameraDetail": "Enable image upload shortcut on purchase order screen",
|
||||
"purchaseOrderShowCameraDetail": "Activează comanda rapidă pentru încărcarea imaginilor pe ecranul comenzii de achiziție",
|
||||
"@purchaseOrderShowCameraDetail": {},
|
||||
"purchaseOrder": "Purchase Order",
|
||||
"purchaseOrder": "Comandă de achiziție",
|
||||
"@purchaseOrder": {},
|
||||
"purchaseOrderCreate": "New Purchase Order",
|
||||
"purchaseOrderCreate": "Comandă nouă de achiziție",
|
||||
"@purchaseOrderCreate": {},
|
||||
"purchaseOrderEdit": "Edit Purchase Order",
|
||||
"purchaseOrderEdit": "Editați comanda de achiziție",
|
||||
"@purchaseOrderEdit": {},
|
||||
"purchaseOrderSettings": "Purchase order settings",
|
||||
"purchaseOrderSettings": "Setări comandă de achiziție",
|
||||
"@purchaseOrderSettings": {},
|
||||
"purchaseOrders": "Purchase Orders",
|
||||
"purchaseOrders": "Comandă de achiziție",
|
||||
"@purchaseOrders": {},
|
||||
"purchaseOrderUpdated": "Purchase order updated",
|
||||
"purchaseOrderUpdated": "Comandă de achiziție actualizată",
|
||||
"@purchaseOrderUpdated": {},
|
||||
"purchasePrice": "Purchase Price",
|
||||
"purchasePrice": "Preț achiziție",
|
||||
"@purchasePrice": {},
|
||||
"quantity": "Quantity",
|
||||
"quantity": "Cantitate",
|
||||
"@quantity": {
|
||||
"description": "Quantity"
|
||||
},
|
||||
"quantityAvailable": "Quantity Available",
|
||||
"quantityAvailable": "Cantitate disponibilă",
|
||||
"@quantityAvailable": {},
|
||||
"quantityEmpty": "Quantity is empty",
|
||||
"quantityEmpty": "Cantitatea este goală",
|
||||
"@quantityEmpty": {},
|
||||
"quantityInvalid": "Quantity is invalid",
|
||||
"quantityInvalid": "Cantitate invalida",
|
||||
"@quantityInvalid": {},
|
||||
"quantityPositive": "Quantity must be positive",
|
||||
"quantityPositive": "Cantitatea trebuie să fie pozitivă",
|
||||
"@quantityPositive": {},
|
||||
"queryEmpty": "Enter search query",
|
||||
"queryEmpty": "Introdu text căutat",
|
||||
"@queryEmpty": {},
|
||||
"queryNoResults": "No results for query",
|
||||
"queryNoResults": "Nici un rezultat pentru cautare",
|
||||
"@queryNoResults": {},
|
||||
"received": "Received",
|
||||
"received": "Recepţionat",
|
||||
"@received": {},
|
||||
"receivedFilterDetail": "Show received items",
|
||||
"receivedFilterDetail": "Afișare articole primite",
|
||||
"@receivedFilterDetail": {},
|
||||
"receiveItem": "Receive Item",
|
||||
"receiveItem": "Articole primite",
|
||||
"@receiveItem": {},
|
||||
"receivedItem": "Received Stock Item",
|
||||
"receivedItem": "Articol primit în stoc",
|
||||
"@receivedItem": {},
|
||||
"reference": "Reference",
|
||||
"reference": "Referinţă",
|
||||
"@reference": {},
|
||||
"refresh": "Refresh",
|
||||
"refresh": "Actualizare",
|
||||
"@refresh": {},
|
||||
"rotateClockwise": "Rotate 90° clockwise",
|
||||
"rotateClockwise": "Rotire la 90° în sens orar",
|
||||
"@rotateClockwise": {},
|
||||
"refreshing": "Refreshing",
|
||||
"refreshing": "Actualizare",
|
||||
"@refreshing": {},
|
||||
"rejected": "Rejected",
|
||||
"rejected": "Respins",
|
||||
"@rejected": {},
|
||||
"releaseNotes": "Release Notes",
|
||||
"releaseNotes": "Informații & versiune",
|
||||
"@releaseNotes": {},
|
||||
"remove": "Remove",
|
||||
"remove": "Șterge",
|
||||
"@remove": {
|
||||
"description": "remove"
|
||||
},
|
||||
"removeStock": "Remove Stock",
|
||||
"removeStock": "Retragere stoc",
|
||||
"@removeStock": {
|
||||
"description": "remove stock"
|
||||
},
|
||||
"reportBug": "Report Bug",
|
||||
"reportBug": "Raportează o eroare",
|
||||
"@reportBug": {},
|
||||
"reportBugDescription": "Submit bug report (requires GitHub account)",
|
||||
"reportBugDescription": "Trimite raportul de eroare (necesită cont GitHub)",
|
||||
"@reportBugDescription": {},
|
||||
"responsible": "Responsabil",
|
||||
"@responsible": {},
|
||||
"results": "Results",
|
||||
"results": "Rezultate",
|
||||
"@results": {},
|
||||
"request": "Request",
|
||||
"request": "Solicitare",
|
||||
"@request": {},
|
||||
"requestFailed": "Cerere eșuată",
|
||||
"@requestFailed": {},
|
||||
"requestSuccessful": "",
|
||||
"@requestSuccessful": {},
|
||||
"requestingData": "Requesting Data",
|
||||
"requestingData": "Solicitare date",
|
||||
"@requestingData": {},
|
||||
"required": "Required",
|
||||
"required": "Obligatoriu",
|
||||
"@required": {
|
||||
"description": "This field is required"
|
||||
},
|
||||
"response400": "Bad Request",
|
||||
"response400": "Cerere greşită",
|
||||
"@response400": {},
|
||||
"response401": "Unauthorized",
|
||||
"response401": "Neautorizat",
|
||||
"@response401": {},
|
||||
"response403": "Permission Denied",
|
||||
"response403": "Acces interzis",
|
||||
"@response403": {},
|
||||
"response404": "Resource Not Found",
|
||||
"response404": "Resursa nu a fost găsită",
|
||||
"@response404": {},
|
||||
"response405": "Method Not Allowed",
|
||||
"response405": "Metoda nu este permisă",
|
||||
"@response405": {},
|
||||
"response429": "Too Many Requests",
|
||||
"response429": "Prea multe solicitări",
|
||||
"@response429": {},
|
||||
"response500": "Internal Server Error",
|
||||
"response500": "Eroare internă server",
|
||||
"@response500": {},
|
||||
"response501": "Not Implemented",
|
||||
"response501": "Nu este implementat",
|
||||
"@response501": {},
|
||||
"response502": "Bad Gateway",
|
||||
"response502": "Gateway greșit",
|
||||
"@response502": {},
|
||||
"response503": "Service Unavailable",
|
||||
"response503": "Serviciu indisponibil",
|
||||
"@response503": {},
|
||||
"response504": "Gateway Timeout",
|
||||
"response504": "Timeout gateway",
|
||||
"@response504": {},
|
||||
"response505": "HTTP Version Not Supported",
|
||||
"response505": "Versiunea HTTP nu este suportată",
|
||||
"@response505": {},
|
||||
"responseData": "Response data",
|
||||
"responseData": "Date Răspuns",
|
||||
"@responseData": {},
|
||||
"responseInvalid": "Invalid Response Code",
|
||||
"responseInvalid": "Cod de răspuns nevalid",
|
||||
"@responseInvalid": {},
|
||||
"responseUnknown": "Unknown Response",
|
||||
"responseUnknown": "Răspuns necunoscut",
|
||||
"@responseUnknown": {},
|
||||
"result": "Result",
|
||||
"result": "Rezultat",
|
||||
"@result": {
|
||||
"description": ""
|
||||
},
|
||||
"returned": "Returned",
|
||||
"returned": "Returnat",
|
||||
"@returned": {},
|
||||
"salesOrder": "Sales Order",
|
||||
"salesOrder": "Comenzi de Vânzare",
|
||||
"@salesOrder": {},
|
||||
"salesOrders": "Sales Orders",
|
||||
"salesOrders": "Comenzi de Vânzare",
|
||||
"@salesOrders": {},
|
||||
"salesOrderEnable": "Enable Sales Orders",
|
||||
"salesOrderEnable": "Activează Comenzile de Vânzări",
|
||||
"@salesOrderEnable": {},
|
||||
"salesOrderEnableDetail": "Enable sales order functionality",
|
||||
"salesOrderEnableDetail": "Activați funcționalitatea comenzilor de vânzare",
|
||||
"@salesOrderEnableDetail": {},
|
||||
"salesOrderShowCamera": "Camera Shortcut",
|
||||
"salesOrderShowCamera": "Scurtătura Cameră",
|
||||
"@salesOrderShowCamera": {},
|
||||
"salesOrderShowCameraDetail": "Enable image upload shortcut on sales order screen",
|
||||
"salesOrderShowCameraDetail": "Activează scurtătura de încărcare a imaginilor pe ecranul comenzii de vânzare",
|
||||
"@salesOrderShowCameraDetail": {},
|
||||
"salesOrderSettings": "Sales order settings",
|
||||
"salesOrderSettings": "Setările comenzii de vânzare",
|
||||
"@salesOrderSettings": {},
|
||||
"salesOrderCreate": "New Sales Order",
|
||||
"salesOrderCreate": "Comandă de vânzări nouă",
|
||||
"@saleOrderCreate": {},
|
||||
"salesOrderEdit": "Edit Sales Order",
|
||||
"salesOrderEdit": "Editează Comanda de Vânzare",
|
||||
"@salesOrderEdit": {},
|
||||
"salesOrderUpdated": "Sales order updated",
|
||||
"salesOrderUpdated": "Comanda de vanzare actualizată",
|
||||
"@salesOrderUpdated": {},
|
||||
"save": "Save",
|
||||
"save": "Salvaţi",
|
||||
"@save": {
|
||||
"description": "Save"
|
||||
},
|
||||
"scanBarcode": "Scan Barcode",
|
||||
"scanBarcode": "Scanați codul de bare",
|
||||
"@scanBarcode": {},
|
||||
"scanSupplierPart": "Scan supplier part barcode",
|
||||
"scanSupplierPart": "Scanare cod de bare furnizor",
|
||||
"@scanSupplierPart": {},
|
||||
"scanIntoLocation": "Scan Into Location",
|
||||
"scanIntoLocation": "Scanare în locație",
|
||||
"@scanIntoLocation": {},
|
||||
"scanIntoLocationDetail": "Scan this item into location",
|
||||
"scanIntoLocationDetail": "Scanează acest articol în locație",
|
||||
"@scanIntoLocationDetail": {},
|
||||
"scannerExternal": "External Scanner",
|
||||
"scannerExternal": "Scanner extern",
|
||||
"@scannerExternal": {},
|
||||
"scannerExternalDetail": "Use external scanner to read barcodes (wedge mode)",
|
||||
"scannerExternalDetail": "Utilizează scanerul extern pentru a citi codurile de bare (modul wedge)",
|
||||
"@scannerExternalDetail": {},
|
||||
"scanReceivedParts": "Scan Received Parts",
|
||||
"scanReceivedParts": "Scanați capitolele primite",
|
||||
"@scanReceivedParts": {},
|
||||
"search": "Search",
|
||||
"search": "Caută",
|
||||
"@search": {
|
||||
"description": "search"
|
||||
},
|
||||
"searching": "Searching",
|
||||
"searching": "Căutare",
|
||||
"@searching": {},
|
||||
"searchLocation": "Search for location",
|
||||
"searchLocation": "Căutați locația",
|
||||
"@searchLocation": {},
|
||||
"searchParts": "Search Parts",
|
||||
"searchParts": "Caută componente",
|
||||
"@searchParts": {},
|
||||
"searchStock": "Search Stock",
|
||||
"searchStock": "Căutare Stoc",
|
||||
"@searchStock": {},
|
||||
"select": "Select",
|
||||
"select": "Selectează",
|
||||
"@select": {},
|
||||
"selectFile": "Select File",
|
||||
"selectFile": "Selectează fișier",
|
||||
"@selectFile": {},
|
||||
"selectImage": "Select Image",
|
||||
"selectImage": "Selectează imagine",
|
||||
"@selectImage": {},
|
||||
"selectLocation": "Select a location",
|
||||
"selectLocation": "Selectați o locație",
|
||||
"@selectLocation": {},
|
||||
"send": "Send",
|
||||
"send": "Trimite",
|
||||
"@send": {},
|
||||
"serialNumber": "Serial Number",
|
||||
"serialNumber": "Număr de serie",
|
||||
"@serialNumber": {},
|
||||
"serialNumbers": "Serial Numbers",
|
||||
"serialNumbers": "Număr de serie",
|
||||
"@serialNumbers": {},
|
||||
"server": "Server",
|
||||
"@server": {},
|
||||
"serverAddress": "Server Address",
|
||||
"serverAddress": "Adresă server",
|
||||
"@serverAddress": {},
|
||||
"serverApiRequired": "Required API Version",
|
||||
"serverApiRequired": "Versiunea API necesară",
|
||||
"@serverApiRequired": {},
|
||||
"serverApiVersion": "Server API Version",
|
||||
"serverApiVersion": "Versiune API server",
|
||||
"@serverApiVersion": {},
|
||||
"serverAuthenticationError": "Authentication Error",
|
||||
"serverAuthenticationError": "Eroare autentificare",
|
||||
"@serverAuthenticationError": {},
|
||||
"serverCertificateError": "Cerficate Error",
|
||||
"@serverCertificateError": {},
|
||||
"serverCertificateInvalid": "Server HTTPS certificate is invalid",
|
||||
"serverCertificateInvalid": "Certificatul HTTPS al serverului nu este valid",
|
||||
"@serverCertificateInvalid": {},
|
||||
"serverConnected": "Connected to Server",
|
||||
"serverConnected": "Conectare la server",
|
||||
"@serverConnected": {},
|
||||
"serverConnecting": "Connecting to server",
|
||||
"serverConnecting": "Se conecteaza la server",
|
||||
"@serverConnecting": {},
|
||||
"serverCouldNotConnect": "Could not connect to server",
|
||||
"serverCouldNotConnect": "Nu s-a putut conecta la server",
|
||||
"@serverCouldNotConnect": {},
|
||||
"serverEmpty": "Server cannot be empty",
|
||||
"serverEmpty": "Serverul nu poate fi gol",
|
||||
"@serverEmpty": {},
|
||||
"serverError": "Server Error",
|
||||
"serverError": "Eroare de server",
|
||||
"@serverError": {},
|
||||
"serverDetails": "Server Details",
|
||||
"serverDetails": "Detalii despre server",
|
||||
"@serverDetails": {},
|
||||
"serverMissingData": "Server response missing required fields",
|
||||
"serverMissingData": "Răspuns server lipsă câmpuri obligatorii",
|
||||
"@serverMissingData": {},
|
||||
"serverOld": "Old Server Version",
|
||||
"serverOld": "Versiunea veche a serverului",
|
||||
"@serverOld": {},
|
||||
"serverSettings": "Server Settings",
|
||||
"serverSettings": "Setări server",
|
||||
"@serverSettings": {},
|
||||
"serverStart": "Server must start with http[s]",
|
||||
"serverStart": "Serverul trebuie să înceapă cu http[s]",
|
||||
"@serverStart": {},
|
||||
"settings": "Settings",
|
||||
"settings": "Setări",
|
||||
"@settings": {},
|
||||
"serverInstance": "Server Instance",
|
||||
"serverInstance": "Instanță server",
|
||||
"@serverInstance": {},
|
||||
"serverNotConnected": "Server not connected",
|
||||
"serverNotConnected": "Serverul nu este conectat",
|
||||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server not selected",
|
||||
"serverNotSelected": "Serverul nu este selectat",
|
||||
"@serverNotSelected": {},
|
||||
"shipments": "Shipments",
|
||||
"shipment": "Expediere",
|
||||
"@shipment": {},
|
||||
"shipments": "Livrări",
|
||||
"@shipments": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"shipmentsPending": "Livrări în așteptare",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Adaugă livrare",
|
||||
"@shipmentAdd": {},
|
||||
"shipped": "Shipped",
|
||||
"shipmentCheck": "Verifica livrare",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Marchează livrarea ca verificată",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Livrare verificată",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Data livrării",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Editare livrare",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Referință livrare",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Livrare Trimisa",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Debifează livrare",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Marchează livrarea ca nebifat",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Livrare actualizată",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Livrat",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
"@sku": {},
|
||||
"sounds": "Sounds",
|
||||
"sounds": "Sunete",
|
||||
"@sounds": {},
|
||||
"soundOnBarcodeAction": "Play audible tone on barcode action",
|
||||
"soundOnBarcodeAction": "Redă ton sonor la acțiunea codului de bare",
|
||||
"@soundOnBarcodeAction": {},
|
||||
"soundOnServerError": "Play audible tone on server error",
|
||||
"soundOnServerError": "Redă sunetul sonor la eroarea serverului",
|
||||
"@soundOnServerError": {},
|
||||
"startDate": "Start Date",
|
||||
"startDate": "Data inceput",
|
||||
"@startDate": {},
|
||||
"status": "Status",
|
||||
"@status": {},
|
||||
"statusCode": "Status Code",
|
||||
"@statusCode": {},
|
||||
"stock": "Stock",
|
||||
"stock": "Stoc",
|
||||
"@stock": {
|
||||
"description": "stock"
|
||||
},
|
||||
"stockDetails": "Current available stock quantity",
|
||||
"stockDetails": "Stoc disponibil curent",
|
||||
"@stockDetails": {},
|
||||
"stockItem": "Stock Item",
|
||||
"stockItem": "Articol Stoc",
|
||||
"@stockItem": {
|
||||
"description": "stock item title"
|
||||
},
|
||||
"stockItems": "Stock Items",
|
||||
"stockItems": "Articol Stoc",
|
||||
"@stockItems": {},
|
||||
"stockItemCreate": "New Stock Item",
|
||||
"stockItemCreate": "Element nou în stoc",
|
||||
"@stockItemCreate": {},
|
||||
"stockItemCreateDetail": "Create new stock item in this location",
|
||||
"stockItemCreateDetail": "Crează element nou în stoc în această locație",
|
||||
"@stockItemCreateDetail": {},
|
||||
"stockItemDelete": "Delete Stock Item",
|
||||
"stockItemDelete": "Şterge elementul din stoc",
|
||||
"@stockItemDelete": {},
|
||||
"stockItemDeleteConfirm": "Are you sure you want to delete this stock item?",
|
||||
"stockItemDeleteConfirm": "Sunteţi sigur că doriţi să ştergeţi acest articol din stoc?",
|
||||
"@stockItemDeleteConfirm": {},
|
||||
"stockItemDeleteFailure": "Could not delete stock item",
|
||||
"stockItemDeleteFailure": "Nu s-a putut șterge articolul din stoc",
|
||||
"@stockItemDeleteFailure": {},
|
||||
"stockItemDeleteSuccess": "Stock item deleted",
|
||||
"stockItemDeleteSuccess": "Articol șters",
|
||||
"@stockItemDeleteSuccess": {},
|
||||
"stockItemHistory": "Stock History",
|
||||
"stockItemHistory": "Istoric Stoc",
|
||||
"@stockItemHistory": {},
|
||||
"stockItemHistoryDetail": "Display historical stock tracking information",
|
||||
"stockItemHistoryDetail": "Afişează informaţii istorice de urmărire stoc",
|
||||
"@stockItemHistoryDetail": {},
|
||||
"stockItemTransferred": "Stock item transferred",
|
||||
"stockItemTransferred": "Articol stoc transferat",
|
||||
"@stockItemTransferred": {},
|
||||
"stockItemUpdated": "Stock item updated",
|
||||
"stockItemUpdated": "Articol stoc actualizat",
|
||||
"@stockItemUpdated": {},
|
||||
"stockItemsNotAvailable": "No stock items available",
|
||||
"stockItemsNotAvailable": "Nu sunt articole disponibile în stoc",
|
||||
"@stockItemsNotAvailable": {},
|
||||
"stockItemNotes": "Stock Item Notes",
|
||||
"stockItemNotes": "Note element de stoc",
|
||||
"@stockItemNotes": {},
|
||||
"stockItemUpdateSuccess": "Stock item updated",
|
||||
"stockItemUpdateSuccess": "Articol stoc actualizat",
|
||||
"@stockItemUpdateSuccess": {},
|
||||
"stockItemUpdateFailure": "Stock item update failed",
|
||||
"stockItemUpdateFailure": "Actualizarea articolului stoc a eșuat",
|
||||
"@stockItemUpdateFailure": {},
|
||||
"stockLocation": "Stock Location",
|
||||
"stockLocation": "Locația stocului",
|
||||
"@stockLocation": {
|
||||
"description": "stock location"
|
||||
},
|
||||
"stockLocations": "Stock Locations",
|
||||
"stockLocations": "Locația stocului",
|
||||
"@stockLocations": {},
|
||||
"stockTopLevel": "Top level stock location",
|
||||
"stockTopLevel": "Locație stoc nivel superior",
|
||||
"@stockTopLevel": {},
|
||||
"strictHttps": "Use Strict HTTPS",
|
||||
"strictHttps": "Folosește HTTPS Strict",
|
||||
"@strictHttps": {},
|
||||
"strictHttpsDetails": "Enforce strict checking of HTTPs certificates",
|
||||
"strictHttpsDetails": "Impune controlul strict al certificatelor HTTP",
|
||||
"@strictHttpsDetails": {},
|
||||
"subcategory": "Subcategory",
|
||||
"subcategory": "Subcategorie",
|
||||
"@subcategory": {},
|
||||
"subcategories": "Subcategories",
|
||||
"subcategories": "Subcategorii",
|
||||
"@subcategories": {},
|
||||
"sublocation": "Sublocation",
|
||||
"sublocation": "Sublocare",
|
||||
"@sublocation": {},
|
||||
"sublocations": "Sublocations",
|
||||
"sublocations": "Sublocare",
|
||||
"@sublocations": {},
|
||||
"sublocationNone": "No Sublocations",
|
||||
"sublocationNone": "Fără sublocări",
|
||||
"@sublocationNone": {},
|
||||
"sublocationNoneDetail": "No sublocations available",
|
||||
"sublocationNoneDetail": "Nu există sublocații disponibile",
|
||||
"@sublocationNoneDetail": {},
|
||||
"submitFeedback": "Submit Feedback",
|
||||
"submitFeedback": "Trimiteți feedback",
|
||||
"@submitFeedback": {},
|
||||
"suppliedParts": "Supplied Parts",
|
||||
"suppliedParts": "Piese furnizate",
|
||||
"@suppliedParts": {},
|
||||
"supplier": "Supplier",
|
||||
"supplier": "Furnizor",
|
||||
"@supplier": {},
|
||||
"supplierPart": "Supplier Part",
|
||||
"supplierPart": "Piesă Furnizor",
|
||||
"@supplierPart": {},
|
||||
"supplierPartEdit": "Edit Supplier Part",
|
||||
"supplierPartEdit": "Editați articol furnizorului",
|
||||
"@supplierPartEdit": {},
|
||||
"supplierPartNumber": "Supplier Part Number",
|
||||
"supplierPartNumber": "Cod furnizor",
|
||||
"@supplierPartNumber": {},
|
||||
"supplierPartUpdated": "Supplier Part Updated",
|
||||
"supplierPartUpdated": "Cod furnizor actualizat",
|
||||
"@supplierPartUpdated": {},
|
||||
"supplierParts": "Supplier Parts",
|
||||
"supplierParts": "Piese Furnizor",
|
||||
"@supplierParts": {},
|
||||
"suppliers": "Suppliers",
|
||||
"suppliers": "Furnizori",
|
||||
"@suppliers": {},
|
||||
"supplierReference": "Supplier Reference",
|
||||
"supplierReference": "Cod furnizor",
|
||||
"@supplierReference": {},
|
||||
"switchCamera": "Switch Camera",
|
||||
"switchCamera": "Comutați Camera",
|
||||
"@switchCamera": {},
|
||||
"takePicture": "Take Picture",
|
||||
"takePicture": "Faceți o fotografie",
|
||||
"@takePicture": {},
|
||||
"targetDate": "Target Date",
|
||||
"targetDate": "Data țintă",
|
||||
"@targetDate": {},
|
||||
"templatePart": "Parent Template Part",
|
||||
"templatePart": "Capitol șablon părinte",
|
||||
"@templatePart": {},
|
||||
"testName": "Test Name",
|
||||
"testName": "Nume test",
|
||||
"@testName": {},
|
||||
"testPassedOrFailed": "Test passed or failed",
|
||||
"testPassedOrFailed": "Testul a trecut sau a eșuat",
|
||||
"@testPassedOrFailed": {},
|
||||
"testsRequired": "Required Tests",
|
||||
"testsRequired": "Teste necesare",
|
||||
"@testsRequired": {},
|
||||
"testResults": "Test Results",
|
||||
"testResults": "Rezultatele testului",
|
||||
"@testResults": {
|
||||
"description": ""
|
||||
},
|
||||
"testResultsDetail": "Display stock item test results",
|
||||
"testResultsDetail": "Afișează rezultatele testului produsului în stoc",
|
||||
"@testResultsDetail": {},
|
||||
"testResultAdd": "Add Test Result",
|
||||
"testResultAdd": "Adăugare rezultat test",
|
||||
"@testResultAdd": {},
|
||||
"testResultNone": "No Test Results",
|
||||
"testResultNone": "Niciun rezultat de test",
|
||||
"@testResultNone": {},
|
||||
"testResultNoneDetail": "No test results available",
|
||||
"testResultNoneDetail": "Nici un rezultat de test disponibil",
|
||||
"@testResultNoneDetail": {},
|
||||
"testResultUploadFail": "Error uploading test result",
|
||||
"testResultUploadFail": "Eroare încărcare rezultat test",
|
||||
"@testResultUploadFail": {},
|
||||
"testResultUploadPass": "Test result uploaded",
|
||||
"testResultUploadPass": "Rezultat test încărcat",
|
||||
"@testResultUploadPass": {},
|
||||
"timeout": "Timeout",
|
||||
"@timeout": {
|
||||
"description": ""
|
||||
},
|
||||
"toggleTorch": "Toggle Torch",
|
||||
"toggleTorch": "Comutare lanternă",
|
||||
"@toggleTorch": {},
|
||||
"tokenError": "Token Error",
|
||||
"tokenError": "Eroare token",
|
||||
"@tokenError": {},
|
||||
"tokenMissing": "Missing Token",
|
||||
"tokenMissing": "Token lipsă",
|
||||
"@tokenMissing": {},
|
||||
"tokenMissingFromResponse": "Access token missing from response",
|
||||
"tokenMissingFromResponse": "Token-ul de acces lipsește din răspuns",
|
||||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"totalPrice": "Preț total",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Număr de urmărire",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
},
|
||||
"transferStock": "Transfer Stock",
|
||||
"transferStock": "Transfera stoc",
|
||||
"@transferStock": {
|
||||
"description": "transfer stock"
|
||||
},
|
||||
"transferStockDetail": "Transfer item to a different location",
|
||||
"transferStockDetail": "Transferați articolul într-o locație diferită",
|
||||
"@transferStockDetail": {},
|
||||
"transferStockLocation": "Transfer Stock Location",
|
||||
"transferStockLocation": "Transfer locație stoc",
|
||||
"@transferStockLocation": {},
|
||||
"transferStockLocationDetail": "Transfer this stock location into another",
|
||||
"transferStockLocationDetail": "Transferați această locație a stocului în alta",
|
||||
"@transferStockLocationDetail": {},
|
||||
"translate": "Translate",
|
||||
"translate": "Traduceți",
|
||||
"@translate": {},
|
||||
"translateHelp": "Help translate the InvenTree app",
|
||||
"translateHelp": "Ajută la traducerea aplicației InvenTree",
|
||||
"@translateHelp": {},
|
||||
"unavailable": "Unavailable",
|
||||
"unavailable": "Indisponibil",
|
||||
"@unavailable": {},
|
||||
"unavailableDetail": "Item is not available",
|
||||
"unavailableDetail": "Articolul nu este disponibil",
|
||||
"@unavailableDetail": {},
|
||||
"unitPrice": "Unit Price",
|
||||
"unitPrice": "Preţ Unitar",
|
||||
"@unitPrice": {},
|
||||
"units": "Units",
|
||||
"units": "Unități",
|
||||
"@units": {},
|
||||
"unknownResponse": "Unknown Response",
|
||||
"unknownResponse": "Răspuns necunoscut",
|
||||
"@unknownResponse": {},
|
||||
"upload": "Upload",
|
||||
"upload": "Încărcaţi",
|
||||
"@upload": {},
|
||||
"uploadFailed": "File upload failed",
|
||||
"uploadFailed": "Încărcare fișier eșuată",
|
||||
"@uploadFailed": {},
|
||||
"uploadSuccess": "File uploaded",
|
||||
"uploadSuccess": "Fişier încărcat",
|
||||
"@uploadSuccess": {},
|
||||
"uploadImage": "Upload Image",
|
||||
"uploadImage": "Încărcare imagine",
|
||||
"@uploadImage": {},
|
||||
"usedIn": "Used In",
|
||||
"usedIn": "Folosite în",
|
||||
"@usedIn": {},
|
||||
"usedInDetails": "Assemblies which require this part",
|
||||
"usedInDetails": "Ansambluri care necesită aceast articol",
|
||||
"@usedInDetails": {},
|
||||
"username": "Username",
|
||||
"username": "Nume utilizator",
|
||||
"@username": {},
|
||||
"usernameEmpty": "Username cannot be empty",
|
||||
"usernameEmpty": "Numele de utilizator nu poate fi gol",
|
||||
"@usernameEmpty": {},
|
||||
"value": "Value",
|
||||
"value": "Valoare",
|
||||
"@value": {
|
||||
"description": "value"
|
||||
},
|
||||
"valueCannotBeEmpty": "Value cannot be empty",
|
||||
"valueCannotBeEmpty": "Valoarea nu poate fi goală",
|
||||
"@valueCannotBeEmpty": {},
|
||||
"valueRequired": "Value is required",
|
||||
"valueRequired": "Valoarea este obligatorie",
|
||||
"@valueRequired": {},
|
||||
"variants": "Variants",
|
||||
"variants": "Variante",
|
||||
"@variants": {},
|
||||
"version": "Version",
|
||||
"version": "Verisune",
|
||||
"@version": {},
|
||||
"viewSupplierPart": "View Supplier Part",
|
||||
"viewSupplierPart": "Vezi capitol furnizor",
|
||||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"price": "Price",
|
||||
"yes": "Da",
|
||||
"@yes": {},
|
||||
"price": "Preț",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
"priceRange": "Interval de preț",
|
||||
"@priceRange": {},
|
||||
"priceOverrideMin": "Minimum Price Override",
|
||||
"priceOverrideMin": "Suprascriere Preț Minim",
|
||||
"@priceOverrideMin": {},
|
||||
"priceOverrideMax": "Maximum Price Override",
|
||||
"priceOverrideMax": "Suprascriere de preț maximă",
|
||||
"@priceOverrideMax": {},
|
||||
"salePrice": "Sale Price",
|
||||
"salePrice": "Preț de vânzare",
|
||||
"@salePrice": {},
|
||||
"saleHistory": "Sale History",
|
||||
"saleHistory": "Istoric vanzari",
|
||||
"@saleHistory": {},
|
||||
"supplierPricing": "Supplier Pricing",
|
||||
"supplierPricing": "Prețurile furnizorului",
|
||||
"@supplierPricing": {},
|
||||
"bomCost": "BOM Cost",
|
||||
"bomCost": "Cost BOM",
|
||||
"@bomCost": {},
|
||||
"internalCost": "Internal Cost",
|
||||
"internalCost": "Cost intern",
|
||||
"@internalCost": {},
|
||||
"variantCost": "Variant Cost",
|
||||
"variantCost": "Cost variantă",
|
||||
"@variantCost": {},
|
||||
"overallPricing": "Overall Pricing",
|
||||
"overallPricing": "Preț general",
|
||||
"@overallPricing": {},
|
||||
"pricingOverrides": "Pricing Overrides",
|
||||
"pricingOverrides": "Suprascrieri preturi",
|
||||
"@pricingOverrides": {},
|
||||
"currency": "Currency",
|
||||
"currency": "Monedă",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"priceBreaks": "Reduceri de preț",
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -42,10 +42,12 @@
|
|||
"@aspectRatio3x2": {},
|
||||
"aspectRatio4x3": "4:3",
|
||||
"@aspectRatio4x3": {},
|
||||
"aspectRatioSquare": "Square (1:1)",
|
||||
"aspectRatioSquare": "Квадрат (1:1)",
|
||||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Выделить запас",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Зарезервированные остатки",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Показать заметки о выпуске приложения",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Настройки приложения",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Сканирование штрих-кода приостановлено",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Нажмите или удерживайте, чтобы приостановить сканирование",
|
||||
"barcodeScanPause": "Нажмите, чтобы приостановить сканирование",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Сканировать для присвоения штрих-кода",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,9 +180,13 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Компании",
|
||||
"@companies": {},
|
||||
"complete": "Завершить",
|
||||
"@complete": {},
|
||||
"completeOrder": "Завершить заказ",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Дата завершения",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Настройка параметров сервера",
|
||||
"configureServer": "Изменить параметры сервера",
|
||||
"@configureServer": {},
|
||||
"confirmScan": "Подтвердить перенос",
|
||||
"@confirmScan": {},
|
||||
|
|
@ -198,9 +204,9 @@
|
|||
},
|
||||
"credits": "Авторы",
|
||||
"@credits": {},
|
||||
"crop": "Crop",
|
||||
"crop": "Обрезать",
|
||||
"@crop": {},
|
||||
"cropImage": "Crop Image",
|
||||
"cropImage": "Обрезать изображение",
|
||||
"@cropImage": {},
|
||||
"customer": "Клиент",
|
||||
"@customer": {},
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Ошибка удаления",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Вы уверены, что хотите удалить изображение?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Удалить изображение",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Удалить изображение",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Удалить деталь",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Удалить эту деталь из базы данных",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Удаление успешно завершено",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Дата доставки",
|
||||
"@deliveryDate": {},
|
||||
"description": "Описание",
|
||||
"@description": {},
|
||||
"destination": "Назначение",
|
||||
|
|
@ -240,9 +254,9 @@
|
|||
},
|
||||
"documentation": "Документация",
|
||||
"@documentation": {},
|
||||
"downloadComplete": "Download Complete",
|
||||
"downloadComplete": "Загрузка завершена",
|
||||
"@downloadComplete": {},
|
||||
"downloadError": "Error downloading image",
|
||||
"downloadError": "Ошибка загрузки изображения",
|
||||
"@downloadError": {},
|
||||
"downloading": "Загрузка файла",
|
||||
"@downloading": {},
|
||||
|
|
@ -268,7 +282,7 @@
|
|||
"@editItem": {},
|
||||
"editLineItem": "Изменить позицию",
|
||||
"@editLineItem": {},
|
||||
"email": "Email",
|
||||
"email": "Электронная почта",
|
||||
"@email": {},
|
||||
"enterPassword": "Введите пароль",
|
||||
"@enterPassword": {},
|
||||
|
|
@ -322,11 +336,11 @@
|
|||
"@filterAssemblyDetail": {},
|
||||
"filterComponent": "Компонент",
|
||||
"@filterComponent": {},
|
||||
"filterComponentDetail": "Показывать части компонента",
|
||||
"filterComponentDetail": "Показать части компонента",
|
||||
"@filterComponentDetail": {},
|
||||
"filterExternal": "Внешний",
|
||||
"@filterExternal": {},
|
||||
"filterExternalDetail": "Показывать запасы во внешних местах",
|
||||
"filterExternalDetail": "Показать запасы во внешних местах",
|
||||
"@filterExternalDetail": {},
|
||||
"filterInStock": "В наличии",
|
||||
"@filterInStock": {},
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Показывать кнопку заказа на главном экране",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Показать отгрузки",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Показывать ожидающие отгрузки на главном экране",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Показать заказы на продажу",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Показывать кнопку заказов на продажу на главном экране",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Неверная комбинация имени пользователя и пароля",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Счет",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Номер счета",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Оформить",
|
||||
"@issue": {},
|
||||
"issueDate": "Дата проблемы",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Ключевые слова",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Драйвер принтера этикеток",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Выберите драйвер принтера этикеток",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Печать этикеток",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Включить печать этикеток",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Создать новое расположение склада",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Расположение по умолчанию",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Не указано месторасположение",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Расположение склада обновлено",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Название",
|
||||
"@name": {},
|
||||
"no": "Нет",
|
||||
"@no": {},
|
||||
"notApplicable": "Н/Д",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Соединение не установлено",
|
||||
"@notConnected": {},
|
||||
"notes": "Заметки",
|
||||
|
|
@ -530,8 +562,12 @@
|
|||
"@noResponse": {},
|
||||
"noResults": "Нет результатов",
|
||||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"noImageAvailable": "Нет доступного изображения",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "Нет данных о цене",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Для этой детали не найдены данные о ценах",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Нет подкатегории",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Нет доступных подкатегорий",
|
||||
|
|
@ -624,11 +660,13 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Пароль не может быть пустым",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "В обработке",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Ваш аккаунт не имеет разрешения на выполнение этого действия",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Требуется разрешение",
|
||||
"@permissionRequired": {},
|
||||
"phone": "Phone",
|
||||
"phone": "Телефон",
|
||||
"@phone": {},
|
||||
"printLabel": "Печать этикетки",
|
||||
"@printLabel": {},
|
||||
|
|
@ -724,7 +762,7 @@
|
|||
"@reference": {},
|
||||
"refresh": "Обновить",
|
||||
"@refresh": {},
|
||||
"rotateClockwise": "Rotate 90° clockwise",
|
||||
"rotateClockwise": "Повернуть на 90° по часовой стрелке",
|
||||
"@rotateClockwise": {},
|
||||
"refreshing": "Обновление…",
|
||||
"@refreshing": {},
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Сервер не выбран",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Отгрузка",
|
||||
"@shipment": {},
|
||||
"shipments": "Поставки",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Ожидающие отгрузки",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Новое Отправление",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Проверить отгрузку",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Отметить этот груз как проверенный",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Отгрузка проверена",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Дата отгрузки",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Редактировать отгрузку",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Ссылка на отгрузку",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Отправить отгрузку",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Снять отметку с отгрузки",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Отметить этот груз как непроверенный",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Отгрузка обновлена",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Отгружено",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Общая стоимость",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Номер отслеживания",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Перемещение",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1084,7 +1148,7 @@
|
|||
"@uploadFailed": {},
|
||||
"uploadSuccess": "Файл загружен",
|
||||
"@uploadSuccess": {},
|
||||
"uploadImage": "Upload Image",
|
||||
"uploadImage": "Загрузить изображение",
|
||||
"@uploadImage": {},
|
||||
"usedIn": "Используется в",
|
||||
"@usedIn": {},
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Сайт",
|
||||
"@website": {},
|
||||
"yes": "Да",
|
||||
"@yes": {},
|
||||
"price": "Цена",
|
||||
"@price": {},
|
||||
"priceRange": "Диапазон цен",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Валюта",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Разбивка по ценам",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "Нет данных о цене",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Для этой детали не найдены данные о ценах",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Allocate Stock",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Display app release notes",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "App Settings",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Barcode scanning paused",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tap or hold to pause scanning",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scan to assign barcode",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Companies",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configure server settings",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Delete operation failed",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Delete Part",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Remove this part from the database",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Delete operation successful",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Description",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Show purchase order button on home screen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Show Sales Orders",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Show sales order button on home screen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Keywords",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Label Printing",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Enable label printing",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No location specified",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stock location updated",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Name",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Not Connected",
|
||||
"@notConnected": {},
|
||||
"notes": "Notes",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "No Subcategories",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No subcategories available",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Password cannot be empty",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Your account does not have the required permissions to perform this action",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permission Required",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server not selected",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Allocate Stock",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Display app release notes",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "App Settings",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Barcode scanning paused",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tap or hold to pause scanning",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scan to assign barcode",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Companies",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configure server settings",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Delete operation failed",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Delete Part",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Remove this part from the database",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Delete operation successful",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Description",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Show purchase order button on home screen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Show Sales Orders",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Show sales order button on home screen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Keywords",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Label Printing",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Enable label printing",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No location specified",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stock location updated",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Name",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Not Connected",
|
||||
"@notConnected": {},
|
||||
"notes": "Notes",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "No Subcategories",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No subcategories available",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Password cannot be empty",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Your account does not have the required permissions to perform this action",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permission Required",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server not selected",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Alociraj zalihe",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Prikaži informacije o aplikaciji",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Podešavanja aplikacije",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Pauzirano skeniranje bar kodova",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Pritisni ili drži za pauzu skeniranja",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Skeniraj za dodelu bar koda",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Kompanije",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Konfiguriši podešavanja servera",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Neuspešna operacija brisanja",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Obriši deo",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Ukloni ovaj deo iz baze podataka",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Operacija brisanja uspešna",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Opis",
|
||||
"@description": {},
|
||||
"destination": "Odredište",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Show purchase order button on home screen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Show Sales Orders",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Show sales order button on home screen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
"issueDate": "Datum izdavanja",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Ključne reči",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Štampanje natpisa",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Omogući štampanje natpisa",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Kreiraj novu lokaciju zaliha",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Nema određene lokacije",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Ažurirana lokacija zaliha",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Ime",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Nije povezano",
|
||||
"@notConnected": {},
|
||||
"notes": "Beleške",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Nema podkategorija",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Nema dostupnih podkategorija",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Password cannot be empty",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Your account does not have the required permissions to perform this action",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permission Required",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server not selected",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -42,10 +42,12 @@
|
|||
"@aspectRatio3x2": {},
|
||||
"aspectRatio4x3": "4:3",
|
||||
"@aspectRatio4x3": {},
|
||||
"aspectRatioSquare": "Square (1:1)",
|
||||
"aspectRatioSquare": "Kvadrat (1:1)",
|
||||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Allokera lager",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Visa versionsinfo för app",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Appinställningar",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Streckkodsskanning pausad",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tryck eller håll ned för att pausa skanning",
|
||||
"barcodeScanPause": "Tryck för att pausa skanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Skanna för att tilldela streckkod",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Företag",
|
||||
"@companies": {},
|
||||
"complete": "Slutförd",
|
||||
"@complete": {},
|
||||
"completeOrder": "Slutför Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Datum slutfört",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Konfigurera serverinställningar",
|
||||
|
|
@ -198,9 +204,9 @@
|
|||
},
|
||||
"credits": "Krediter",
|
||||
"@credits": {},
|
||||
"crop": "Crop",
|
||||
"crop": "Beskär",
|
||||
"@crop": {},
|
||||
"cropImage": "Crop Image",
|
||||
"cropImage": "Beskär Bild",
|
||||
"@cropImage": {},
|
||||
"customer": "Kund",
|
||||
"@customer": {},
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Borttagning misslyckades",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Är du säker på att du vill radera denna bild?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Radera bild",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Radera bild",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Ta bort del",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Ta bort denna del från databasen",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Borttagning lyckad",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Leveransdatum",
|
||||
"@deliveryDate": {},
|
||||
"description": "Beskrivning",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -240,9 +254,9 @@
|
|||
},
|
||||
"documentation": "Dokumentation",
|
||||
"@documentation": {},
|
||||
"downloadComplete": "Download Complete",
|
||||
"downloadComplete": "Nedladdning klar",
|
||||
"@downloadComplete": {},
|
||||
"downloadError": "Error downloading image",
|
||||
"downloadError": "Fel vid nedladdning av bild",
|
||||
"@downloadError": {},
|
||||
"downloading": "Laddar ner fil",
|
||||
"@downloading": {},
|
||||
|
|
@ -268,7 +282,7 @@
|
|||
"@editItem": {},
|
||||
"editLineItem": "Redigera radobjekt",
|
||||
"@editLineItem": {},
|
||||
"email": "Email",
|
||||
"email": "E-post",
|
||||
"@email": {},
|
||||
"enterPassword": "Ange lösenord",
|
||||
"@enterPassword": {},
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Visa knappen för inköpsorder på startskärmen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Visa leveranser",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Visa väntande leveranser på startskärmen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Visa försäljningsorder",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Visa knappen för försäljningsorder på startskärmen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Felaktigt användarnamn / lösenord kombination",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Faktura",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Fakturanummer",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Ärende",
|
||||
"@issue": {},
|
||||
"issueDate": "Utfärdad datum",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Nyckelord",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Utskrift av etiketter",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Aktivera etikettutskrift",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Skapa ny lagerplats",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Förvald plats",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Ingen plats specificerad",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Lagerplatsen uppdaterad",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Namn",
|
||||
"@name": {},
|
||||
"no": "Nej",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Ej ansluten",
|
||||
"@notConnected": {},
|
||||
"notes": "Anteckningar",
|
||||
|
|
@ -530,8 +562,12 @@
|
|||
"@noResponse": {},
|
||||
"noResults": "Inga resultat",
|
||||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"noImageAvailable": "Ingen bild tillgänglig",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "Ingen prisinformation tillgänglig",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Inga prisuppgifter hittades för denna artikel",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Inga underkategorier",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Inga underkategorier tillgängliga",
|
||||
|
|
@ -594,7 +630,7 @@
|
|||
"@partsNone": {},
|
||||
"partNoResults": "Inga artiklar som matchar sökfrågan",
|
||||
"@partNoResults": {},
|
||||
"partPricing": "Part Pricing",
|
||||
"partPricing": "Artikelpris",
|
||||
"@partPricing": {},
|
||||
"partPricingSettingDetail": "Display part pricing information",
|
||||
"@pricingSettingDetail": {},
|
||||
|
|
@ -624,11 +660,13 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Lösenordet får inte vara tomt",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Väntande",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Ditt konto har inte de rättigheter som krävs för att utföra denna åtgärd",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Särskilda behörigheter krävs",
|
||||
"@permissionRequired": {},
|
||||
"phone": "Phone",
|
||||
"phone": "Telefon",
|
||||
"@phone": {},
|
||||
"printLabel": "Skriv ut etikett",
|
||||
"@printLabel": {},
|
||||
|
|
@ -724,7 +762,7 @@
|
|||
"@reference": {},
|
||||
"refresh": "Uppdatera",
|
||||
"@refresh": {},
|
||||
"rotateClockwise": "Rotate 90° clockwise",
|
||||
"rotateClockwise": "Rotera 90° medurs",
|
||||
"@rotateClockwise": {},
|
||||
"refreshing": "Uppdaterar",
|
||||
"@refreshing": {},
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Servern är inte vald",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Försändelse",
|
||||
"@shipment": {},
|
||||
"shipments": "Frakt",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Lägg till frakt",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Leveransdatum",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Skickad",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Totalpris",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Sändningsnummer",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Överföring",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1084,7 +1148,7 @@
|
|||
"@uploadFailed": {},
|
||||
"uploadSuccess": "Fil har laddats upp",
|
||||
"@uploadSuccess": {},
|
||||
"uploadImage": "Upload Image",
|
||||
"uploadImage": "Ladda upp bild",
|
||||
"@uploadImage": {},
|
||||
"usedIn": "Används i",
|
||||
"@usedIn": {},
|
||||
|
|
@ -1110,19 +1174,21 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Webbplats",
|
||||
"@website": {},
|
||||
"price": "Price",
|
||||
"yes": "Ja",
|
||||
"@yes": {},
|
||||
"price": "Pris",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
"priceRange": "Prisintervall",
|
||||
"@priceRange": {},
|
||||
"priceOverrideMin": "Minimum Price Override",
|
||||
"@priceOverrideMin": {},
|
||||
"priceOverrideMax": "Maximum Price Override",
|
||||
"@priceOverrideMax": {},
|
||||
"salePrice": "Sale Price",
|
||||
"salePrice": "Försäljningspris",
|
||||
"@salePrice": {},
|
||||
"saleHistory": "Sale History",
|
||||
"@saleHistory": {},
|
||||
"supplierPricing": "Supplier Pricing",
|
||||
"supplierPricing": "Leverantörspriser",
|
||||
"@supplierPricing": {},
|
||||
"bomCost": "BOM Cost",
|
||||
"@bomCost": {},
|
||||
|
|
@ -1134,18 +1200,8 @@
|
|||
"@overallPricing": {},
|
||||
"pricingOverrides": "Pricing Overrides",
|
||||
"@pricingOverrides": {},
|
||||
"currency": "Currency",
|
||||
"currency": "Valuta",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "จัดสรรคลัง",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "แสดงข้อมูลรุ่นของโปรแกรม",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "การตั้งค่าแอปพลิเคชั่น",
|
||||
|
|
@ -86,7 +88,7 @@
|
|||
"@barcodeAssigned": {},
|
||||
"barcodeError": "สแกนบาร์โค้ดผิดพลาด",
|
||||
"@barcodeError": {},
|
||||
"barcodeInUse": "Barcode already assigned",
|
||||
"barcodeInUse": "",
|
||||
"@barcodeInUse": {},
|
||||
"barcodeMissingHash": "Barcode hash data missing from response",
|
||||
"@barcodeMissingHash": {},
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "หยุดการสแกนบาร์โค้ด",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Tap or hold to pause scanning",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Scan to assign barcode",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Companies",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Configure server settings",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Delete operation failed",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Delete Part",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Remove this part from the database",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Delete operation successful",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Description",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Show purchase order button on home screen",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Show Sales Orders",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Show sales order button on home screen",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Invalid username / password combination",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Issue",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Keywords",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Label Printing",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Enable label printing",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Create new stock location",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "No location specified",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stock location updated",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Name",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Not Connected",
|
||||
"@notConnected": {},
|
||||
"notes": "Notes",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "No Subcategories",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No subcategories available",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Password cannot be empty",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Your account does not have the required permissions to perform this action",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Permission Required",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server not selected",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Shipped",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
},
|
||||
"about": "Hakkında",
|
||||
"@about": {},
|
||||
"accountDetails": "Hesap Detayları",
|
||||
"accountDetails": "Hesap Ayrıntıları",
|
||||
"@accountDetails": {},
|
||||
"actions": "Eylemler",
|
||||
"@actions": {
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
"@appCredits": {},
|
||||
"appDetails": "Uygulama Ayrıntıları",
|
||||
"@appDetails": {},
|
||||
"allocated": "Tahsis edildi",
|
||||
"allocated": "Tahsis Edildi",
|
||||
"@allocated": {},
|
||||
"aspectRatio16x9": "16:9",
|
||||
"@aspectRatio16x9": {},
|
||||
|
|
@ -44,9 +44,11 @@
|
|||
"@aspectRatio4x3": {},
|
||||
"aspectRatioSquare": "Kare (1:1)",
|
||||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Tahsisli stok",
|
||||
"allocateStock": "Stoku Tahsis Et",
|
||||
"@allocateStock": {},
|
||||
"appReleaseNotes": "Uygulama yayınlama notlarını göster",
|
||||
"allocatedStock": "Tahsis Edilen Stok",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Uygulama yayınlama notlarını görüntüle",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Uygulama Ayarları",
|
||||
"@appSettings": {},
|
||||
|
|
@ -58,7 +60,7 @@
|
|||
"@assignedToMeDetail": {},
|
||||
"attachments": "Ekler",
|
||||
"@attachments": {},
|
||||
"attachImage": "Resim ekle",
|
||||
"attachImage": "Görsel Ekle",
|
||||
"@attachImage": {
|
||||
"description": "Attach an image"
|
||||
},
|
||||
|
|
@ -96,11 +98,11 @@
|
|||
"@barcodeNotAssigned": {},
|
||||
"barcodeScanPart": "Parça barkodnu tara",
|
||||
"@barcodeScanPart": {},
|
||||
"barcodeReceivePart": "Tesellüm barkodunu tara",
|
||||
"barcodeReceivePart": "Parçayı teslim almak için barkodu tarayın",
|
||||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Barkod tarama duraklatıldı",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Taramayı duraklatmak için dokunun veya basılı tutun",
|
||||
"barcodeScanPause": "Taramayı duraklatmak için dokunun",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Atanmış barkodu tara",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -114,7 +116,7 @@
|
|||
"@barcodeScanDelayDetail": {},
|
||||
"barcodeScanGeneral": "Bir InvenTree barkodu tara",
|
||||
"@barcodeScanGeneral": {},
|
||||
"barcodeScanInItems": "Stok ögelerini bu konum içine tara",
|
||||
"barcodeScanInItems": "Stok kalemlerini bu konumun içine tara",
|
||||
"@barcodeScanInItems": {},
|
||||
"barcodeScanLocation": "Stok konumu tara",
|
||||
"@barcodeScanLocation": {},
|
||||
|
|
@ -126,7 +128,7 @@
|
|||
"@barcodeScanIntoLocationSuccess": {},
|
||||
"barcodeScanIntoLocationFailure": "Madde taranmış değil",
|
||||
"@barcodeScanIntoLocationFailure": {},
|
||||
"barcodeScanItem": "Stok öğesi tara",
|
||||
"barcodeScanItem": "Stok kalemi tara",
|
||||
"@barcodeScanItem": {},
|
||||
"barcodeTones": "Barkod Tonları",
|
||||
"@barcodeTones": {},
|
||||
|
|
@ -136,15 +138,15 @@
|
|||
"@barcodeUnknown": {},
|
||||
"batchCode": "Grup kodu",
|
||||
"@batchCode": {},
|
||||
"billOfMaterials": "Fatura materyalleri",
|
||||
"billOfMaterials": "Ürün Ağacı",
|
||||
"@billOfMaterials": {},
|
||||
"bom": "BOM",
|
||||
"@bom": {},
|
||||
"bomEnable": "Malzeme Listesini Görüntüle",
|
||||
"bomEnable": "Ürün Ağacını Görüntüle",
|
||||
"@bomEnable": {},
|
||||
"build": "Oluştur",
|
||||
"build": "Üret",
|
||||
"@build": {},
|
||||
"building": "Oluşturma",
|
||||
"building": "Üretiliyor",
|
||||
"@building": {},
|
||||
"cameraCreationError": "Kamera Kontrolcüsü Açılamadı",
|
||||
"@cameraCreationError": {},
|
||||
|
|
@ -174,10 +176,14 @@
|
|||
"@companyEdit": {},
|
||||
"companyNoResults": "Sorguyla eşleşen şirket yok",
|
||||
"@companyNoResults": {},
|
||||
"companyUpdated": "Firma bilgileri güncellendi",
|
||||
"companyUpdated": "Şirket bilgileri güncellendi",
|
||||
"@companyUpdated": {},
|
||||
"companies": "Şirketler",
|
||||
"@companies": {},
|
||||
"complete": "Tamamlandı",
|
||||
"@complete": {},
|
||||
"completeOrder": "Siparişi Tamamla",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Tamamlanma Tarihi",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Sunucu ayarlarınızı yapılandırın",
|
||||
|
|
@ -200,7 +206,7 @@
|
|||
"@credits": {},
|
||||
"crop": "Kırp",
|
||||
"@crop": {},
|
||||
"cropImage": "Resmi Kırp",
|
||||
"cropImage": "Görseli Kırp",
|
||||
"@cropImage": {},
|
||||
"customer": "Müşteri",
|
||||
"@customer": {},
|
||||
|
|
@ -222,19 +228,27 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Silme işlemi başarısız",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Bu görseli silmek istediğinize emin misiniz?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Görseli Sil",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Görseli sil",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Parça Sil",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Bu parçayı veritabanından kaldır",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Silme işlemi başarılı",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Teslim Tarihi",
|
||||
"@deliveryDate": {},
|
||||
"description": "Açıklama",
|
||||
"@description": {},
|
||||
"destination": "Varış Yeri",
|
||||
"destination": "Hedef",
|
||||
"@destination": {},
|
||||
"destroyed": "Yok edildi",
|
||||
"@destroyed": {},
|
||||
"details": "Detaylar",
|
||||
"details": "Ayrıntılar",
|
||||
"@details": {
|
||||
"description": "details"
|
||||
},
|
||||
|
|
@ -264,9 +278,9 @@
|
|||
"@editPart": {
|
||||
"description": "edit part"
|
||||
},
|
||||
"editItem": "Parçayı Düzenle",
|
||||
"editItem": "Stok kalemi düzenle",
|
||||
"@editItem": {},
|
||||
"editLineItem": "Satır Ögesini Düzenle",
|
||||
"editLineItem": "Satırı Düzenle",
|
||||
"@editLineItem": {},
|
||||
"email": "E-posta",
|
||||
"@email": {},
|
||||
|
|
@ -302,9 +316,9 @@
|
|||
"@expiryExpired": {},
|
||||
"expiryStale": "Eskimiş",
|
||||
"@expiryStale": {},
|
||||
"extraLineItem": "Fazladan Satır Ögesi",
|
||||
"extraLineItem": "Ek Kalem",
|
||||
"@extraLineItem": {},
|
||||
"extraLineItems": "Fazladan Satır Ögeleri",
|
||||
"extraLineItems": "Ek Kalemler",
|
||||
"@extraLineItems": {},
|
||||
"feedback": "Geri Bildirim",
|
||||
"@feedback": {},
|
||||
|
|
@ -334,7 +348,7 @@
|
|||
"@filterInStockDetail": {},
|
||||
"filterSerialized": "Sıralandırılmış",
|
||||
"@filterSerialized": {},
|
||||
"filterSerializedDetail": "Sıralandırılmış stok ürünkerini göster",
|
||||
"filterSerializedDetail": "Seri numaralı stok kalemlerini göster",
|
||||
"@filterSerializedDetail": {},
|
||||
"filterTemplate": "Şablon",
|
||||
"@filterTemplate": {},
|
||||
|
|
@ -370,13 +384,17 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Satınalma sipariş butonunu ana ekranda göster",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Teslimatları Göster",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Bekleyen teslimatları ana ekranda göster",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Satış Siparişlerini Göster",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Satış siparişleri tuşunu giriş ekranında göster",
|
||||
"@homeShowSoDescription": {},
|
||||
"homeShowSubscribed": "Parça bildirimlerine abone ol",
|
||||
"homeShowSubscribed": "Takip Edilen Parçalar",
|
||||
"@homeShowSubscribed": {},
|
||||
"homeShowSubscribedDescription": "Abone olunan bölümleri ana ekranda göster",
|
||||
"homeShowSubscribedDescription": "Takip edilen parçaları ana ekranda göster",
|
||||
"@homeShowSubscsribedDescription": {},
|
||||
"homeShowSuppliers": "Tedarikçileri Göster",
|
||||
"@homeShowSuppliers": {},
|
||||
|
|
@ -390,13 +408,13 @@
|
|||
"@homeShowCustomers": {},
|
||||
"homeShowCustomersDescription": "Müşteri butonunu ana ekranda göster",
|
||||
"@homeShowCustomersDescription": {},
|
||||
"imageUploadFailure": "Fotoğraf yükleme başarısız",
|
||||
"imageUploadFailure": "Görsel yükleme başarısız",
|
||||
"@imageUploadFailure": {},
|
||||
"imageUploadSuccess": "Resim yüklendi",
|
||||
"imageUploadSuccess": "Görsel yüklendi",
|
||||
"@imageUploadSuccess": {},
|
||||
"inactive": "Pasif",
|
||||
"@inactive": {},
|
||||
"inactiveCompany": "Bu şirket inaktif olarak imlendi",
|
||||
"inactiveCompany": "Bu şirket pasif olarak işaretlendi",
|
||||
"@inactiveCompany": {},
|
||||
"inactiveDetail": "Bu parça pasif olarak işaretlendi",
|
||||
"@inactiveDetail": {},
|
||||
|
|
@ -414,9 +432,9 @@
|
|||
"@internalPartNumber": {},
|
||||
"info": "Bilgi",
|
||||
"@info": {},
|
||||
"inProduction": "Yapım Aşamasında",
|
||||
"inProduction": "Üretimde",
|
||||
"@inProduction": {},
|
||||
"inProductionDetail": "Bu ürün üretim aşamasında",
|
||||
"inProductionDetail": "Bu stok kalemi üretimdedir",
|
||||
"@inProductionDetail": {},
|
||||
"internalPart": "İç Parça",
|
||||
"@internalPart": {},
|
||||
|
|
@ -430,17 +448,21 @@
|
|||
"@invalidPartCategory": {},
|
||||
"invalidStockLocation": "Geçersiz Stok Konumu",
|
||||
"@invalidStockLocation": {},
|
||||
"invalidStockItem": "Geçersiz Stok Parçası",
|
||||
"invalidStockItem": "Geçersiz Stok Kalemi",
|
||||
"@invalidStockItem": {},
|
||||
"invalidSupplierPart": "Geçersiz Tedarikçi Parçası",
|
||||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Geçersiz kullanıcı adı ve şifre",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Fatura",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Fatura Numarası",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Sorun",
|
||||
"@issue": {},
|
||||
"issueDate": "Sorun Tarihi",
|
||||
"@issueDate": {},
|
||||
"issueOrder": "Sipariş Ver",
|
||||
"issueOrder": "Sipariş Düzenle",
|
||||
"@issueOrder": {},
|
||||
"itemInLocation": "Parça zaten konumda",
|
||||
"@itemInLocation": {},
|
||||
|
|
@ -450,9 +472,13 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Anahtar kelimeler",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Etiket Sürücü",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Etiket Yazıcı Sürücüsü Seçin",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Etiket Yazdırma",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Etiket yazdırmayı aktifleştir",
|
||||
"labelPrintingDetail": "Etiket yazdırmayı etkinleştir",
|
||||
"@labelPrintingDetail": {},
|
||||
"labelTemplate": "Etiket Şablonu",
|
||||
"@labelTemplate": {},
|
||||
|
|
@ -466,21 +492,21 @@
|
|||
"@languageDefault": {},
|
||||
"languageSelect": "Dil Seçin",
|
||||
"@languageSelect": {},
|
||||
"lastStocktake": "Son stok tutma",
|
||||
"lastStocktake": "Son Stok Sayımı",
|
||||
"@lastStocktake": {},
|
||||
"lastUpdated": "Son güncelleme",
|
||||
"@lastUpdated": {},
|
||||
"level": "Düzey",
|
||||
"level": "Seviye",
|
||||
"@level": {},
|
||||
"lineItemAdd": "Satır Ögesi Ekle",
|
||||
"lineItemAdd": "Satır Ekle",
|
||||
"@lineItemAdd": {},
|
||||
"lineItem": "Parça Sırası",
|
||||
"lineItem": "Satır",
|
||||
"@lineItem": {},
|
||||
"lineItems": "Parçalar Sırası",
|
||||
"lineItems": "Satırlar",
|
||||
"@lineItems": {},
|
||||
"lineItemUpdated": "Satır ögesi güncellendi",
|
||||
"lineItemUpdated": "Satır güncellendi",
|
||||
"@lineItemUpdated": {},
|
||||
"locateItem": "Stok ögesi bul",
|
||||
"locateItem": "Stok kalemi bul",
|
||||
"@locateItem": {},
|
||||
"locateLocation": "Stok konumu bul",
|
||||
"@locateLocation": {},
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Yeni stok konumu oluştur",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Varsayılan Konum",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Belirtilmiş konum yok",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Stok lokasyonu güncellendi",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Adı",
|
||||
"@name": {},
|
||||
"no": "Hayır",
|
||||
"@no": {},
|
||||
"notApplicable": "Yok / Geçerli Değil",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Bağlı değil",
|
||||
"@notConnected": {},
|
||||
"notes": "Notlar",
|
||||
|
|
@ -530,8 +562,12 @@
|
|||
"@noResponse": {},
|
||||
"noResults": "Sonuç Yok",
|
||||
"@noResults": {},
|
||||
"noImageAvailable": "Kullanılabilir resim yok",
|
||||
"noImageAvailable": "Görsel yok",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "Fiyatlandırma mevcut değil",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Bu parça için fiyatlandırma verisi bulunamadı",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Alt kategori yok",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Uygun alt kategori yok",
|
||||
|
|
@ -552,9 +588,9 @@
|
|||
"@orientationPortrait": {},
|
||||
"orientationSystem": "Sistem",
|
||||
"@orientationSystem": {},
|
||||
"outstanding": "Beklemede",
|
||||
"outstanding": "Açık",
|
||||
"@outstanding": {},
|
||||
"outstandingOrderDetail": "Bekleyen siparişleri göster",
|
||||
"outstandingOrderDetail": "Açık siparişleri göster",
|
||||
"@outstandingOrderDetail": {},
|
||||
"overdue": "Gecikmede",
|
||||
"@overdue": {},
|
||||
|
|
@ -566,7 +602,7 @@
|
|||
"@packageName": {},
|
||||
"parameters": "Parametreler",
|
||||
"@parameters": {},
|
||||
"parametersSettingDetail": "Parça parametrelerini göster",
|
||||
"parametersSettingDetail": "Parça parametrelerini görüntüle",
|
||||
"@parametersSettingDetail": {},
|
||||
"parent": "Üst",
|
||||
"@parent": {},
|
||||
|
|
@ -588,7 +624,7 @@
|
|||
"@parts": {
|
||||
"description": "Part (multiple)"
|
||||
},
|
||||
"partNotSalable": "Parça satılabilir olarak imlenmemiş",
|
||||
"partNotSalable": "Parça satılabilir olarak işaretli değil",
|
||||
"@partNotSalable": {},
|
||||
"partsNone": "Parça Yok",
|
||||
"@partsNone": {},
|
||||
|
|
@ -600,7 +636,7 @@
|
|||
"@pricingSettingDetail": {},
|
||||
"partSettings": "Parça Ayarları",
|
||||
"@partSettings": {},
|
||||
"partsStarred": "Sürekli Gelen parçalar",
|
||||
"partsStarred": "Takip Edilen Parçalar",
|
||||
"@partsStarred": {},
|
||||
"partsStarredNone": "Yıldızlı parça yok",
|
||||
"@partsStarredNone": {},
|
||||
|
|
@ -612,7 +648,7 @@
|
|||
"@partCategoryTopLevel": {},
|
||||
"partCategories": "Parça Kategorileri",
|
||||
"@partCategories": {},
|
||||
"partDetails": "Parça detayları",
|
||||
"partDetails": "Parça Ayrıntıları",
|
||||
"@partDetails": {},
|
||||
"partNotes": "Parça notları",
|
||||
"@partNotes": {},
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Parola boş bırakılamaz",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Beklemede",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Bu eylemi gerçekleştirmek için gerekli yetkiye sahip değilsiniz",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "İzin Gerekli",
|
||||
|
|
@ -672,15 +710,15 @@
|
|||
"@projectCode": {},
|
||||
"purchaseOrderConfirmScan": "Tarama Verisini Onayla",
|
||||
"@purchaseOrderConfirmScan": {},
|
||||
"purchaseOrderConfirmScanDetail": "Taranan Ürünlerin Detaylarını Onayla",
|
||||
"purchaseOrderConfirmScanDetail": "Kalemleri tararken ayrıntıları onayla",
|
||||
"@purchaseOrderConfirmScanDetail": {},
|
||||
"purchaseOrderEnable": "Satın Alma Emirlerini Etkinleştir",
|
||||
"purchaseOrderEnable": "Satın Alma Siparişlerini Etkinleştir",
|
||||
"@purchaseOrderEnable": {},
|
||||
"purchaseOrderEnableDetail": "Satın Alma Emirlerinin İşlevselliğini Etkinleştir",
|
||||
"@purchaseOrderEnableDetail": {},
|
||||
"purchaseOrderShowCamera": "Kamera Kısayolu",
|
||||
"@purchaseOrderShowCamera": {},
|
||||
"purchaseOrderShowCameraDetail": "Satın alma emirleri ekranında fotoğraf yükleme kısayolunu etkinleştir",
|
||||
"purchaseOrderShowCameraDetail": "Satın alma siparişi ekranında görsel yükleme kısayolunu etkinleştir",
|
||||
"@purchaseOrderShowCameraDetail": {},
|
||||
"purchaseOrder": "Satınalma Siparişi",
|
||||
"@purchaseOrder": {},
|
||||
|
|
@ -690,7 +728,7 @@
|
|||
"@purchaseOrderEdit": {},
|
||||
"purchaseOrderSettings": "Satın Alma Emri Ayarları",
|
||||
"@purchaseOrderSettings": {},
|
||||
"purchaseOrders": "Satınalma Siparişleri",
|
||||
"purchaseOrders": "Satın Alma Siparişleri",
|
||||
"@purchaseOrders": {},
|
||||
"purchaseOrderUpdated": "Satın Alma Siparişi güncellendi",
|
||||
"@purchaseOrderUpdated": {},
|
||||
|
|
@ -712,13 +750,13 @@
|
|||
"@queryEmpty": {},
|
||||
"queryNoResults": "Sorgu için sonuç yok",
|
||||
"@queryNoResults": {},
|
||||
"received": "Alınan",
|
||||
"received": "Teslim Alındı",
|
||||
"@received": {},
|
||||
"receivedFilterDetail": "Alınan ögeleri göster",
|
||||
"receivedFilterDetail": "Teslim alınan kalemleri göster",
|
||||
"@receivedFilterDetail": {},
|
||||
"receiveItem": "Alınan Öğeler",
|
||||
"receiveItem": "Kalemi Teslim Al",
|
||||
"@receiveItem": {},
|
||||
"receivedItem": "Alınan stok parçaları",
|
||||
"receivedItem": "Teslim alınan stok kalemleri",
|
||||
"@receivedItem": {},
|
||||
"reference": "Referans",
|
||||
"@reference": {},
|
||||
|
|
@ -800,13 +838,13 @@
|
|||
"@salesOrder": {},
|
||||
"salesOrders": "Satış Siparişleri",
|
||||
"@salesOrders": {},
|
||||
"salesOrderEnable": "Satış Emirlerini Etkinleştir",
|
||||
"salesOrderEnable": "Satış Siparişlerini Etkinleştir",
|
||||
"@salesOrderEnable": {},
|
||||
"salesOrderEnableDetail": "Satış Siparişlerinin İşlevselliğini Etkinleştir",
|
||||
"@salesOrderEnableDetail": {},
|
||||
"salesOrderShowCamera": "Kamera Kısayolu",
|
||||
"@salesOrderShowCamera": {},
|
||||
"salesOrderShowCameraDetail": "Satış emirleri ekranında fotoğraf yükleme kısayolunu etkinleştir",
|
||||
"salesOrderShowCameraDetail": "Satış siparişi ekranında görsel yükleme kısayolunu etkinleştir",
|
||||
"@salesOrderShowCameraDetail": {},
|
||||
"salesOrderSettings": "Satış emirleri ayarları",
|
||||
"@salesOrderSettings": {},
|
||||
|
|
@ -822,7 +860,7 @@
|
|||
},
|
||||
"scanBarcode": "Barkod Tara",
|
||||
"@scanBarcode": {},
|
||||
"scanSupplierPart": "Sağlayıcı parça barkodunu tara",
|
||||
"scanSupplierPart": "Tedarikçi parça barkodunu tara",
|
||||
"@scanSupplierPart": {},
|
||||
"scanIntoLocation": "Konuma Tara",
|
||||
"@scanIntoLocation": {},
|
||||
|
|
@ -832,7 +870,7 @@
|
|||
"@scannerExternal": {},
|
||||
"scannerExternalDetail": "Barkodları okumak için harici tarayıcı kullan (keyboard wedge modu)",
|
||||
"@scannerExternalDetail": {},
|
||||
"scanReceivedParts": "Alınan Parçaları Tara",
|
||||
"scanReceivedParts": "Teslim Alınan Parçaları Tara",
|
||||
"@scanReceivedParts": {},
|
||||
"search": "Ara",
|
||||
"@search": {
|
||||
|
|
@ -850,7 +888,7 @@
|
|||
"@select": {},
|
||||
"selectFile": "Dosya Seç",
|
||||
"@selectFile": {},
|
||||
"selectImage": "Resim Seç",
|
||||
"selectImage": "Görsel Seç",
|
||||
"@selectImage": {},
|
||||
"selectLocation": "Bir yer seçin",
|
||||
"@selectLocation": {},
|
||||
|
|
@ -884,7 +922,7 @@
|
|||
"@serverEmpty": {},
|
||||
"serverError": "Sunucu Hatası",
|
||||
"@serverError": {},
|
||||
"serverDetails": "Sunucu Detayları",
|
||||
"serverDetails": "Sunucu Ayrıntıları",
|
||||
"@serverDetails": {},
|
||||
"serverMissingData": "Sunucu yanıtında gerekli alanlar eksik",
|
||||
"@serverMissingData": {},
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Sunucu bulunamadı",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Teslimat",
|
||||
"@shipment": {},
|
||||
"shipments": "Gönderiler",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Bekleyen Teslimatlar",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Gönderi Ekle",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Sevkiyatı Kontrol Et",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Bu sevkiyatı kontrol edildi olarak işaretle",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Sevkiyat Kontrol Edildi",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Teslimat Tarihi",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Teslimatı Düzenle",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Teslimat Referansı",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Teslimatı Gönder",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Sevkiyat Kontrolünü Kaldır",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Bu teslimatı kontrol edilmedi olarak işaretle",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Teslimat Güncellendi",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Gönderildi",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
|
|
@ -936,25 +998,25 @@
|
|||
"@stockItems": {},
|
||||
"stockItemCreate": "Yeni Stok Kalemi",
|
||||
"@stockItemCreate": {},
|
||||
"stockItemCreateDetail": "Bu konuma yeni stok kalemi oluştur",
|
||||
"stockItemCreateDetail": "Bu konumda yeni stok kalemi oluştur",
|
||||
"@stockItemCreateDetail": {},
|
||||
"stockItemDelete": "Stok parçasını sil",
|
||||
"@stockItemDelete": {},
|
||||
"stockItemDeleteConfirm": "Bu stock ögesini silmek istediğinize emin misiniz?",
|
||||
"stockItemDeleteConfirm": "Bu stok kalemini silmek istediğinize emin misiniz?",
|
||||
"@stockItemDeleteConfirm": {},
|
||||
"stockItemDeleteFailure": "Stok parçası silinemedi",
|
||||
"stockItemDeleteFailure": "Stok kalemi silinemedi",
|
||||
"@stockItemDeleteFailure": {},
|
||||
"stockItemDeleteSuccess": "Stok ögesi silindi",
|
||||
"stockItemDeleteSuccess": "Stok kalemi silindi",
|
||||
"@stockItemDeleteSuccess": {},
|
||||
"stockItemHistory": "Stok Geçmişi",
|
||||
"@stockItemHistory": {},
|
||||
"stockItemHistoryDetail": "Geçmiş stok takip bilgisini göster",
|
||||
"stockItemHistoryDetail": "Geçmiş stok takip bilgisini görüntüle",
|
||||
"@stockItemHistoryDetail": {},
|
||||
"stockItemTransferred": "Stok ögesi aktarıldı",
|
||||
"stockItemTransferred": "Stok kalemi aktarıldı",
|
||||
"@stockItemTransferred": {},
|
||||
"stockItemUpdated": "Stok ögesi güncellendi",
|
||||
"stockItemUpdated": "Stok kalemi güncellendi",
|
||||
"@stockItemUpdated": {},
|
||||
"stockItemsNotAvailable": "Kullanılabilir stok ögesi yok",
|
||||
"stockItemsNotAvailable": "Stok kalemi bulunmamaktadır",
|
||||
"@stockItemsNotAvailable": {},
|
||||
"stockItemNotes": "Stok Kalemi Notları",
|
||||
"@stockItemNotes": {},
|
||||
|
|
@ -994,11 +1056,11 @@
|
|||
"@supplier": {},
|
||||
"supplierPart": "Tedarikçi Parçası",
|
||||
"@supplierPart": {},
|
||||
"supplierPartEdit": "Sağlayıcı Parçasını Düzenle",
|
||||
"supplierPartEdit": "Tedarikçi Parçasını Düzenle",
|
||||
"@supplierPartEdit": {},
|
||||
"supplierPartNumber": "Sağlayıcı Parça Numarası",
|
||||
"supplierPartNumber": "Tedarikçi Parça Numarası",
|
||||
"@supplierPartNumber": {},
|
||||
"supplierPartUpdated": "Sağlayıcı Parçası Güncellendi",
|
||||
"supplierPartUpdated": "Tedarikçi Parçası Güncellendi",
|
||||
"@supplierPartUpdated": {},
|
||||
"supplierParts": "Tedarikçi Parçaları",
|
||||
"@supplierParts": {},
|
||||
|
|
@ -1024,7 +1086,7 @@
|
|||
"@testResults": {
|
||||
"description": ""
|
||||
},
|
||||
"testResultsDetail": "Stok ögesi test sonuçlarını görüntüle",
|
||||
"testResultsDetail": "Stok kalemi test sonuçlarını görüntüle",
|
||||
"@testResultsDetail": {},
|
||||
"testResultAdd": "Test Sonucu Ekle",
|
||||
"@testResultAdd": {},
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Toplam Fiyat",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Takip Numarası",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Aktarım",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1084,7 +1148,7 @@
|
|||
"@uploadFailed": {},
|
||||
"uploadSuccess": "Dosya yüklendi",
|
||||
"@uploadSuccess": {},
|
||||
"uploadImage": "Resim Yükleyin",
|
||||
"uploadImage": "Görsel Yükle",
|
||||
"@uploadImage": {},
|
||||
"usedIn": "Burada Kullanıldı",
|
||||
"@usedIn": {},
|
||||
|
|
@ -1102,7 +1166,7 @@
|
|||
"@valueCannotBeEmpty": {},
|
||||
"valueRequired": "Değer gereklidir",
|
||||
"@valueRequired": {},
|
||||
"variants": "Türevler",
|
||||
"variants": "Varyantlar",
|
||||
"@variants": {},
|
||||
"version": "Sürüm",
|
||||
"@version": {},
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Web sitesi",
|
||||
"@website": {},
|
||||
"yes": "Evet",
|
||||
"@yes": {},
|
||||
"price": "Fiyat",
|
||||
"@price": {},
|
||||
"priceRange": "Fiyat Aralığı",
|
||||
|
|
@ -1122,13 +1188,13 @@
|
|||
"@salePrice": {},
|
||||
"saleHistory": "Satış Geçmişi",
|
||||
"@saleHistory": {},
|
||||
"supplierPricing": "Sağlayıcı Fiyatlandırması",
|
||||
"supplierPricing": "Tedarikçi Fiyatlandırması",
|
||||
"@supplierPricing": {},
|
||||
"bomCost": "BoM Maliyeti",
|
||||
"@bomCost": {},
|
||||
"internalCost": "Dahili Maliyet",
|
||||
"@internalCost": {},
|
||||
"variantCost": "Türev Maliyeti",
|
||||
"variantCost": "Varyant Maliyeti",
|
||||
"@variantCost": {},
|
||||
"overallPricing": "Genel Fiyatlandırma",
|
||||
"@overallPricing": {},
|
||||
|
|
@ -1136,16 +1202,6 @@
|
|||
"@pricingOverrides": {},
|
||||
"currency": "Para Birimi",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Fiyat Aralığı",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "Fiyatlandırma mevcut değil",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Bu parça için fiyatlandırma verisi bulunamadı",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Bu resmi silmek istediğinizden emin misiniz?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Görüntüyü Sil",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Resmi sil",
|
||||
"@deleteImage": {}
|
||||
"priceBreaks": "Fiyat Kademeleri",
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Виділити запас",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Виділений Запас",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Показати примітки до випуску",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Налаштування додатку",
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Компанії",
|
||||
"@companies": {},
|
||||
"complete": "Завершити",
|
||||
"@complete": {},
|
||||
"completeOrder": "Завершити замовлення",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Дата завершення",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Налаштування сервера",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Помилка видалення",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Ви дійсно хочете видалити це зображення?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Видалити Зображення",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Видалити Зображення",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Видалити деталь",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Видалити цю частину з бази даних",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Операція видалення пройшла успішно",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Дата Доставки",
|
||||
"@deliveryDate": {},
|
||||
"description": "Опис",
|
||||
"@description": {},
|
||||
"destination": "Місце призначення",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Показувати кнопку замовлення на домашньому екрані",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Показати відправлення",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Показати відкладені відправлення на головному екрані",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Показати замовлення",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Показувати кнопку замовлення на домашньому екрані",
|
||||
|
|
@ -436,11 +454,15 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Неправильна комбінація імені користувача та пароля",
|
||||
"@invalidUsernamePassword": {},
|
||||
"issue": "Issue",
|
||||
"invoice": "Інвойс",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Номер Інвойсу",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Видача",
|
||||
"@issue": {},
|
||||
"issueDate": "Issue Date",
|
||||
"issueDate": "Дата Видачі",
|
||||
"@issueDate": {},
|
||||
"issueOrder": "Issue Order",
|
||||
"issueOrder": "Оформити Замовлення",
|
||||
"@issueOrder": {},
|
||||
"itemInLocation": "Товар вже на місці",
|
||||
"@itemInLocation": {},
|
||||
|
|
@ -450,15 +472,19 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "Ключові слова",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Драйвер Етикеток",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Вибрати Драйвер Принтера Етикеток",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "Друк Ярликів",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Увімкнути друк ярликів",
|
||||
"@labelPrintingDetail": {},
|
||||
"labelTemplate": "Шаблон Ярлика",
|
||||
"@labelTemplate": {},
|
||||
"labelSelectTemplate": "Select Label Template",
|
||||
"labelSelectTemplate": "Вибрати Шаблон Етикетки",
|
||||
"@labelSelectTemplate": {},
|
||||
"labelSelectPrinter": "Select Label Printer",
|
||||
"labelSelectPrinter": "Вибрати Принтер Етикеток",
|
||||
"@labelSelectPrinter": {},
|
||||
"language": "Мова",
|
||||
"@language": {},
|
||||
|
|
@ -466,19 +492,19 @@
|
|||
"@languageDefault": {},
|
||||
"languageSelect": "Вибір мови",
|
||||
"@languageSelect": {},
|
||||
"lastStocktake": "Last Stocktake",
|
||||
"lastStocktake": "Остання інвентаризація",
|
||||
"@lastStocktake": {},
|
||||
"lastUpdated": "Останнє оновлення",
|
||||
"@lastUpdated": {},
|
||||
"level": "Рівень",
|
||||
"@level": {},
|
||||
"lineItemAdd": "Add Line Item",
|
||||
"lineItemAdd": "Додати Позицію",
|
||||
"@lineItemAdd": {},
|
||||
"lineItem": "Line Item",
|
||||
"lineItem": "Позиція",
|
||||
"@lineItem": {},
|
||||
"lineItems": "Line Items",
|
||||
"lineItems": "Позиції",
|
||||
"@lineItems": {},
|
||||
"lineItemUpdated": "Line item updated",
|
||||
"lineItemUpdated": "Позицію оновлено",
|
||||
"@lineItemUpdated": {},
|
||||
"locateItem": "Знайти елемент запасів",
|
||||
"@locateItem": {},
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Створити нове розташування на складі",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Розташування за замовчуванням",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Розташування не вказано",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Розташування запасів оновлено",
|
||||
|
|
@ -500,11 +528,11 @@
|
|||
"@loginEnterDetails": {},
|
||||
"link": "Посилання",
|
||||
"@link": {},
|
||||
"lost": "Lost",
|
||||
"lost": "Втрачено",
|
||||
"@lost": {},
|
||||
"manufacturerPart": "Manufacturer Part",
|
||||
"manufacturerPart": "Виробник деталі",
|
||||
"@manufacturerPart": {},
|
||||
"manufacturerPartEdit": "Edit Manufacturer Part",
|
||||
"manufacturerPartEdit": "Редагувати виробника деталі",
|
||||
"@manufacturerPartEdit": {},
|
||||
"manufacturerPartNumber": "Номер позиції виробника",
|
||||
"@manufacturerPartNumber": {},
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Назва",
|
||||
"@name": {},
|
||||
"no": "Ні",
|
||||
"@no": {},
|
||||
"notApplicable": "Н/Д",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Не під’єднано",
|
||||
"@notConnected": {},
|
||||
"notes": "Нотатки",
|
||||
|
|
@ -532,29 +564,33 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "Немає доступного зображення",
|
||||
"@noImageAvailable": {},
|
||||
"noSubcategories": "No Subcategories",
|
||||
"noPricingAvailable": "Ціни не вказано",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "Для цієї деталі не знайдено даних про ціну",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Немає Підкатегорій",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "No subcategories available",
|
||||
"noSubcategoriesAvailable": "Немає доступних підкатегорій",
|
||||
"@noSubcategoriesAvailable": {},
|
||||
"numberInvalid": "Invalid number",
|
||||
"numberInvalid": "Некоректний номер",
|
||||
"@numberInvalid": {},
|
||||
"onOrder": "On Order",
|
||||
"onOrder": "У замовленні",
|
||||
"@onOrder": {},
|
||||
"onOrderDetails": "Items currently on order",
|
||||
"onOrderDetails": "Позиції в поточних замовленнях",
|
||||
"@onOrderDetails": {},
|
||||
"orientation": "Screen Orientation",
|
||||
"orientation": "Орієнтація екрана",
|
||||
"@orientation": {},
|
||||
"orientationDetail": "Screen orientation (requires restart)",
|
||||
"orientationDetail": "Орієнтація екрана (потребує перезапуску)",
|
||||
"@orientationDetail": {},
|
||||
"orientationLandscape": "Landscape",
|
||||
"orientationLandscape": "Альбомна орієнтація",
|
||||
"@orientationLandscape": {},
|
||||
"orientationPortrait": "Portrait",
|
||||
"orientationPortrait": "Портретна орієнтація екрану",
|
||||
"@orientationPortrait": {},
|
||||
"orientationSystem": "System",
|
||||
"orientationSystem": "Орієнтація задана системою",
|
||||
"@orientationSystem": {},
|
||||
"outstanding": "Відмінно",
|
||||
"@outstanding": {},
|
||||
"outstandingOrderDetail": "Show outstanding orders",
|
||||
"outstandingOrderDetail": "Показати незавершені замовлення",
|
||||
"@outstandingOrderDetail": {},
|
||||
"overdue": "Протерміновані",
|
||||
"@overdue": {},
|
||||
|
|
@ -594,9 +630,9 @@
|
|||
"@partsNone": {},
|
||||
"partNoResults": "Немає позицій відповідних запиту",
|
||||
"@partNoResults": {},
|
||||
"partPricing": "Part Pricing",
|
||||
"partPricing": "Ціна деталі",
|
||||
"@partPricing": {},
|
||||
"partPricingSettingDetail": "Display part pricing information",
|
||||
"partPricingSettingDetail": "Відображати інформацію про ціни на деталь",
|
||||
"@pricingSettingDetail": {},
|
||||
"partSettings": "Налаштування позиції",
|
||||
"@partSettings": {},
|
||||
|
|
@ -616,7 +652,7 @@
|
|||
"@partDetails": {},
|
||||
"partNotes": "Примітки до позиції",
|
||||
"@partNotes": {},
|
||||
"partStock": "Part Stock",
|
||||
"partStock": "Наявність На Складі",
|
||||
"@partStock": {
|
||||
"description": "part stock"
|
||||
},
|
||||
|
|
@ -624,11 +660,13 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Пароль не може бути порожнім",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "В очікуванні",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Ваш обліковий запис не має необхідних прав для виконання цієї дії",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Потрібен дозвіл",
|
||||
"@permissionRequired": {},
|
||||
"phone": "Phone",
|
||||
"phone": "Телефон",
|
||||
"@phone": {},
|
||||
"printLabel": "Друк ярлика",
|
||||
"@printLabel": {},
|
||||
|
|
@ -674,65 +712,65 @@
|
|||
"@purchaseOrderConfirmScan": {},
|
||||
"purchaseOrderConfirmScanDetail": "Підтвердити подробиці при скануванні в позицій",
|
||||
"@purchaseOrderConfirmScanDetail": {},
|
||||
"purchaseOrderEnable": "Enable Purchase Orders",
|
||||
"purchaseOrderEnable": "Увімкнути Закупівлю",
|
||||
"@purchaseOrderEnable": {},
|
||||
"purchaseOrderEnableDetail": "Enable purchase order functionality",
|
||||
"purchaseOrderEnableDetail": "Увімкнути функціонал закупівлі",
|
||||
"@purchaseOrderEnableDetail": {},
|
||||
"purchaseOrderShowCamera": "Camera Shortcut",
|
||||
"purchaseOrderShowCamera": "Швидкий Доступ до Камери",
|
||||
"@purchaseOrderShowCamera": {},
|
||||
"purchaseOrderShowCameraDetail": "Enable image upload shortcut on purchase order screen",
|
||||
"purchaseOrderShowCameraDetail": "Увімкнути ярлик для завантаження зображень на екрані закупівель",
|
||||
"@purchaseOrderShowCameraDetail": {},
|
||||
"purchaseOrder": "Purchase Order",
|
||||
"purchaseOrder": "Замовлення на Закупівлю",
|
||||
"@purchaseOrder": {},
|
||||
"purchaseOrderCreate": "New Purchase Order",
|
||||
"purchaseOrderCreate": "Нове Замовлення на Закупівлю",
|
||||
"@purchaseOrderCreate": {},
|
||||
"purchaseOrderEdit": "Edit Purchase Order",
|
||||
"purchaseOrderEdit": "Редагувати Замовлення на Закупівлю",
|
||||
"@purchaseOrderEdit": {},
|
||||
"purchaseOrderSettings": "Purchase order settings",
|
||||
"purchaseOrderSettings": "Налаштування замовлення на закупівлю",
|
||||
"@purchaseOrderSettings": {},
|
||||
"purchaseOrders": "Purchase Orders",
|
||||
"purchaseOrders": "Закупівлі",
|
||||
"@purchaseOrders": {},
|
||||
"purchaseOrderUpdated": "Purchase order updated",
|
||||
"purchaseOrderUpdated": "Замовлення на закупівлю оновлено",
|
||||
"@purchaseOrderUpdated": {},
|
||||
"purchasePrice": "Purchase Price",
|
||||
"purchasePrice": "Закупівельна Ціна",
|
||||
"@purchasePrice": {},
|
||||
"quantity": "Quantity",
|
||||
"quantity": "Кількість",
|
||||
"@quantity": {
|
||||
"description": "Quantity"
|
||||
},
|
||||
"quantityAvailable": "Quantity Available",
|
||||
"quantityAvailable": "Доступна кількість",
|
||||
"@quantityAvailable": {},
|
||||
"quantityEmpty": "Quantity is empty",
|
||||
"quantityEmpty": "Кількість не вказана",
|
||||
"@quantityEmpty": {},
|
||||
"quantityInvalid": "Quantity is invalid",
|
||||
"quantityInvalid": "Некоректна кількість",
|
||||
"@quantityInvalid": {},
|
||||
"quantityPositive": "Quantity must be positive",
|
||||
"quantityPositive": "Кількість мусить бути позитивною",
|
||||
"@quantityPositive": {},
|
||||
"queryEmpty": "Enter search query",
|
||||
"queryEmpty": "Що шукати?",
|
||||
"@queryEmpty": {},
|
||||
"queryNoResults": "No results for query",
|
||||
"queryNoResults": "Нічого не знайдено",
|
||||
"@queryNoResults": {},
|
||||
"received": "Received",
|
||||
"received": "Отримано",
|
||||
"@received": {},
|
||||
"receivedFilterDetail": "Show received items",
|
||||
"receivedFilterDetail": "Показувати отримані позиції",
|
||||
"@receivedFilterDetail": {},
|
||||
"receiveItem": "Receive Item",
|
||||
"receiveItem": "Прийняти Позицію",
|
||||
"@receiveItem": {},
|
||||
"receivedItem": "Received Stock Item",
|
||||
"receivedItem": "Отримана Складська Позиція",
|
||||
"@receivedItem": {},
|
||||
"reference": "Reference",
|
||||
"reference": "Номер документа",
|
||||
"@reference": {},
|
||||
"refresh": "Refresh",
|
||||
"refresh": "Оновити",
|
||||
"@refresh": {},
|
||||
"rotateClockwise": "Rotate 90° clockwise",
|
||||
"rotateClockwise": "Повернути на 90° за годинниковою стрілкою",
|
||||
"@rotateClockwise": {},
|
||||
"refreshing": "Refreshing",
|
||||
"refreshing": "Оновлення",
|
||||
"@refreshing": {},
|
||||
"rejected": "Rejected",
|
||||
"rejected": "Відхилено",
|
||||
"@rejected": {},
|
||||
"releaseNotes": "Release Notes",
|
||||
"releaseNotes": "Замітки до випуску",
|
||||
"@releaseNotes": {},
|
||||
"remove": "Remove",
|
||||
"remove": "Видалити",
|
||||
"@remove": {
|
||||
"description": "remove"
|
||||
},
|
||||
|
|
@ -740,47 +778,47 @@
|
|||
"@removeStock": {
|
||||
"description": "remove stock"
|
||||
},
|
||||
"reportBug": "Report Bug",
|
||||
"reportBug": "Зголосити помилку",
|
||||
"@reportBug": {},
|
||||
"reportBugDescription": "Відправити звіт про помилку (потрібен обліковий запис GitHub)",
|
||||
"@reportBugDescription": {},
|
||||
"responsible": "Responsible",
|
||||
"responsible": "Відповідальний",
|
||||
"@responsible": {},
|
||||
"results": "Results",
|
||||
"results": "Результати",
|
||||
"@results": {},
|
||||
"request": "Request",
|
||||
"request": "Запит",
|
||||
"@request": {},
|
||||
"requestFailed": "Request Failed",
|
||||
"requestFailed": "Запит завершився помилкою",
|
||||
"@requestFailed": {},
|
||||
"requestSuccessful": "Request successful",
|
||||
"requestSuccessful": "Успішний запит",
|
||||
"@requestSuccessful": {},
|
||||
"requestingData": "Requesting Data",
|
||||
"requestingData": "Запит даних",
|
||||
"@requestingData": {},
|
||||
"required": "Required",
|
||||
"@required": {
|
||||
"description": "This field is required"
|
||||
},
|
||||
"response400": "Bad Request",
|
||||
"response400": "Некоректний запит",
|
||||
"@response400": {},
|
||||
"response401": "Unauthorized",
|
||||
"response401": "Потрібна авторизація",
|
||||
"@response401": {},
|
||||
"response403": "Permission Denied",
|
||||
"response403": "Доступ заборонено",
|
||||
"@response403": {},
|
||||
"response404": "Resource Not Found",
|
||||
"response404": "Ресурс не знайдено",
|
||||
"@response404": {},
|
||||
"response405": "Method Not Allowed",
|
||||
"response405": "Цей метод заборонений",
|
||||
"@response405": {},
|
||||
"response429": "Too Many Requests",
|
||||
"response429": "Занадто багато запитів",
|
||||
"@response429": {},
|
||||
"response500": "Internal Server Error",
|
||||
"response500": "Внутрішня помилка сервера",
|
||||
"@response500": {},
|
||||
"response501": "Not Implemented",
|
||||
"response501": "Не реалізовано",
|
||||
"@response501": {},
|
||||
"response502": "Bad Gateway",
|
||||
"response502": "Поганий шлюз",
|
||||
"@response502": {},
|
||||
"response503": "Service Unavailable",
|
||||
"response503": "Сервіс недоступний",
|
||||
"@response503": {},
|
||||
"response504": "Gateway Timeout",
|
||||
"response504": "Шлю не відповідає",
|
||||
"@response504": {},
|
||||
"response505": "Версія HTTP не підтримується",
|
||||
"@response505": {},
|
||||
|
|
@ -824,21 +862,21 @@
|
|||
"@scanBarcode": {},
|
||||
"scanSupplierPart": "Сканувати штрих-код позиції постачальника",
|
||||
"@scanSupplierPart": {},
|
||||
"scanIntoLocation": "Scan Into Location",
|
||||
"scanIntoLocation": "",
|
||||
"@scanIntoLocation": {},
|
||||
"scanIntoLocationDetail": "Scan this item into location",
|
||||
"@scanIntoLocationDetail": {},
|
||||
"scannerExternal": "External Scanner",
|
||||
"scannerExternal": "Зовнішній сканер",
|
||||
"@scannerExternal": {},
|
||||
"scannerExternalDetail": "Використовувати зовнішній сканер для читання штрих-кодів (wedge режим)",
|
||||
"@scannerExternalDetail": {},
|
||||
"scanReceivedParts": "Scan Received Parts",
|
||||
"@scanReceivedParts": {},
|
||||
"search": "Search",
|
||||
"search": "Пошук",
|
||||
"@search": {
|
||||
"description": "search"
|
||||
},
|
||||
"searching": "Searching",
|
||||
"searching": "Триває пошук",
|
||||
"@searching": {},
|
||||
"searchLocation": "Search for location",
|
||||
"@searchLocation": {},
|
||||
|
|
@ -846,81 +884,105 @@
|
|||
"@searchParts": {},
|
||||
"searchStock": "Search Stock",
|
||||
"@searchStock": {},
|
||||
"select": "Select",
|
||||
"select": "Вибрати",
|
||||
"@select": {},
|
||||
"selectFile": "Select File",
|
||||
"selectFile": "Вибрати файл",
|
||||
"@selectFile": {},
|
||||
"selectImage": "Select Image",
|
||||
"selectImage": "Виберіть зображення",
|
||||
"@selectImage": {},
|
||||
"selectLocation": "Select a location",
|
||||
"@selectLocation": {},
|
||||
"send": "Send",
|
||||
"send": "Відправити",
|
||||
"@send": {},
|
||||
"serialNumber": "Serial Number",
|
||||
"serialNumber": "Серійний номер",
|
||||
"@serialNumber": {},
|
||||
"serialNumbers": "Serial Numbers",
|
||||
"serialNumbers": "Серійні номери",
|
||||
"@serialNumbers": {},
|
||||
"server": "Server",
|
||||
"server": "Сервер",
|
||||
"@server": {},
|
||||
"serverAddress": "Server Address",
|
||||
"serverAddress": "Адреса сервера",
|
||||
"@serverAddress": {},
|
||||
"serverApiRequired": "Required API Version",
|
||||
"serverApiRequired": "Вимагана версія API",
|
||||
"@serverApiRequired": {},
|
||||
"serverApiVersion": "Server API Version",
|
||||
"serverApiVersion": "Версія API сервера",
|
||||
"@serverApiVersion": {},
|
||||
"serverAuthenticationError": "Authentication Error",
|
||||
"serverAuthenticationError": "Помилка аутентифікації",
|
||||
"@serverAuthenticationError": {},
|
||||
"serverCertificateError": "Cerficate Error",
|
||||
"serverCertificateError": "Помилка сертифіката",
|
||||
"@serverCertificateError": {},
|
||||
"serverCertificateInvalid": "Server HTTPS certificate is invalid",
|
||||
"serverCertificateInvalid": "Помилка HTTPS сертифікату сервера",
|
||||
"@serverCertificateInvalid": {},
|
||||
"serverConnected": "Connected to Server",
|
||||
"serverConnected": "Підключений до сервера",
|
||||
"@serverConnected": {},
|
||||
"serverConnecting": "Connecting to server",
|
||||
"serverConnecting": "Триває підключення до сервера",
|
||||
"@serverConnecting": {},
|
||||
"serverCouldNotConnect": "Could not connect to server",
|
||||
"serverCouldNotConnect": "Неможливо під'єднатися до сервера",
|
||||
"@serverCouldNotConnect": {},
|
||||
"serverEmpty": "Server cannot be empty",
|
||||
"@serverEmpty": {},
|
||||
"serverError": "Server Error",
|
||||
"serverError": "Помилка сервера",
|
||||
"@serverError": {},
|
||||
"serverDetails": "Server Details",
|
||||
"serverDetails": "Інформація про сервер",
|
||||
"@serverDetails": {},
|
||||
"serverMissingData": "На сервері відсутні обов'язкові поля для відповіді",
|
||||
"@serverMissingData": {},
|
||||
"serverOld": "Old Server Version",
|
||||
"serverOld": "Стара версія сервера",
|
||||
"@serverOld": {},
|
||||
"serverSettings": "Server Settings",
|
||||
"serverSettings": "Налаштування сервера",
|
||||
"@serverSettings": {},
|
||||
"serverStart": "Server must start with http[s]",
|
||||
"serverStart": "Адреса сервера мусить починатися з http[s]",
|
||||
"@serverStart": {},
|
||||
"settings": "Settings",
|
||||
"settings": "Налаштування",
|
||||
"@settings": {},
|
||||
"serverInstance": "Server Instance",
|
||||
"serverInstance": "Екземпляр сервера",
|
||||
"@serverInstance": {},
|
||||
"serverNotConnected": "Server not connected",
|
||||
"serverNotConnected": "Відсутнє з'єднання з сервером",
|
||||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Server not selected",
|
||||
"serverNotSelected": "Сервер не вибраний",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Shipments",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Add Shipment",
|
||||
"@shipmentAdd": {},
|
||||
"shipped": "Shipped",
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Відправлено",
|
||||
"@shipped": {},
|
||||
"sku": "SKU",
|
||||
"@sku": {},
|
||||
"sounds": "Sounds",
|
||||
"sounds": "Звуки",
|
||||
"@sounds": {},
|
||||
"soundOnBarcodeAction": "Play audible tone on barcode action",
|
||||
"soundOnBarcodeAction": "Відтворити звук при скануванні",
|
||||
"@soundOnBarcodeAction": {},
|
||||
"soundOnServerError": "Play audible tone on server error",
|
||||
"soundOnServerError": "Відтворити звук при помилці сервера",
|
||||
"@soundOnServerError": {},
|
||||
"startDate": "Start Date",
|
||||
"startDate": "Дата початку",
|
||||
"@startDate": {},
|
||||
"status": "Status",
|
||||
"status": "Статус",
|
||||
"@status": {},
|
||||
"statusCode": "Status Code",
|
||||
"statusCode": "Код статусу",
|
||||
"@statusCode": {},
|
||||
"stock": "Stock",
|
||||
"@stock": {
|
||||
|
|
@ -990,7 +1052,7 @@
|
|||
"@submitFeedback": {},
|
||||
"suppliedParts": "Supplied Parts",
|
||||
"@suppliedParts": {},
|
||||
"supplier": "Supplier",
|
||||
"supplier": "Постачальник",
|
||||
"@supplier": {},
|
||||
"supplierPart": "Supplier Part",
|
||||
"@supplierPart": {},
|
||||
|
|
@ -1002,47 +1064,47 @@
|
|||
"@supplierPartUpdated": {},
|
||||
"supplierParts": "Supplier Parts",
|
||||
"@supplierParts": {},
|
||||
"suppliers": "Suppliers",
|
||||
"suppliers": "Постачальники",
|
||||
"@suppliers": {},
|
||||
"supplierReference": "Supplier Reference",
|
||||
"@supplierReference": {},
|
||||
"switchCamera": "Switch Camera",
|
||||
"@switchCamera": {},
|
||||
"takePicture": "Take Picture",
|
||||
"takePicture": "Зробити фото",
|
||||
"@takePicture": {},
|
||||
"targetDate": "Target Date",
|
||||
"@targetDate": {},
|
||||
"templatePart": "Parent Template Part",
|
||||
"@templatePart": {},
|
||||
"testName": "Test Name",
|
||||
"testName": "Назва тесту",
|
||||
"@testName": {},
|
||||
"testPassedOrFailed": "Test passed or failed",
|
||||
"testPassedOrFailed": "Тест завершився успішно або помилкою",
|
||||
"@testPassedOrFailed": {},
|
||||
"testsRequired": "Required Tests",
|
||||
"testsRequired": "Вимаганні тести",
|
||||
"@testsRequired": {},
|
||||
"testResults": "Test Results",
|
||||
"testResults": "Результат тесту",
|
||||
"@testResults": {
|
||||
"description": ""
|
||||
},
|
||||
"testResultsDetail": "Display stock item test results",
|
||||
"testResultsDetail": "Показати результати перевірки товару на складі",
|
||||
"@testResultsDetail": {},
|
||||
"testResultAdd": "Add Test Result",
|
||||
"testResultAdd": "Додати результат тесту",
|
||||
"@testResultAdd": {},
|
||||
"testResultNone": "No Test Results",
|
||||
"testResultNone": "Відсутні результати тесту",
|
||||
"@testResultNone": {},
|
||||
"testResultNoneDetail": "No test results available",
|
||||
"testResultNoneDetail": "Результати тесту недоступні",
|
||||
"@testResultNoneDetail": {},
|
||||
"testResultUploadFail": "Error uploading test result",
|
||||
"testResultUploadFail": "Помилка при завантаженні результатів тесту",
|
||||
"@testResultUploadFail": {},
|
||||
"testResultUploadPass": "Test result uploaded",
|
||||
"@testResultUploadPass": {},
|
||||
"timeout": "Timeout",
|
||||
"timeout": "Тайм-аут",
|
||||
"@timeout": {
|
||||
"description": ""
|
||||
},
|
||||
"toggleTorch": "Toggle Torch",
|
||||
"@toggleTorch": {},
|
||||
"tokenError": "Token Error",
|
||||
"tokenError": "Помилка токену",
|
||||
"@tokenError": {},
|
||||
"tokenMissing": "Missing Token",
|
||||
"@tokenMissing": {},
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Total Price",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Transfer",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Website",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "Phân kho",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "Hiển thị ghi chú phát hành ứng dụng",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "Cài đặt ứng dụng",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "Quét mã vạch đã bị dừng",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "Nhấp hoặc giữ để dừng quét",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "Quét để gán mã vạch",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "Doanh nghiệp",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "Cấu hình thiết lập máy chủ",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "Thao tác xóa đã thất bại",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "Xóa phần",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "Xóa một phần ra khỏi cơ sở dữ liệu",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "Thao tác xóa thành công",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "Mô tả",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -250,7 +264,7 @@
|
|||
"@edit": {
|
||||
"description": "edit"
|
||||
},
|
||||
"editAttachment": "Edit Attachment",
|
||||
"editAttachment": "Sửa tệp đính kèm",
|
||||
"@editAttachment": {},
|
||||
"editCategory": "Sửa Danh mục",
|
||||
"@editCategory": {},
|
||||
|
|
@ -268,7 +282,7 @@
|
|||
"@editItem": {},
|
||||
"editLineItem": "Sửa dòng sản phẩm",
|
||||
"@editLineItem": {},
|
||||
"email": "Email",
|
||||
"email": "Địa chỉ email",
|
||||
"@email": {},
|
||||
"enterPassword": "Nhập mật khẩu",
|
||||
"@enterPassword": {},
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "Hiển thị đơn hàng mới tại màn hình chính",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "Hiện đơn hàng bán",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "Hiện nút đơn hàng bán tại màn hình trang chủ",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "Tên người dùng / mật khẩu không hợp lệ",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "Vấn đề",
|
||||
"@issue": {},
|
||||
"issueDate": "Ngày phát hành",
|
||||
|
|
@ -446,10 +468,14 @@
|
|||
"@itemInLocation": {},
|
||||
"itemDeleted": "Hàng hóa đã bị xóa",
|
||||
"@itemDeleted": {},
|
||||
"itemUpdated": "Item updated",
|
||||
"itemUpdated": "Mẫu đã được cập nhật",
|
||||
"@itemUpdated": {},
|
||||
"keywords": "Từ khóa",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "In nhãn mã vạch",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "Bật in nhãn tem",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "Thêm mới vị trí kho hàng",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "Không xác định được vị trí",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "Cập nhật vị trí kho hàng",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "Tên",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "Không được kết nối",
|
||||
"@notConnected": {},
|
||||
"notes": "Ghi chú",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "Không có danh mục con",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "Không có sẵn danh mục",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "Mật khẩu không được để trống",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "Tài khoản này bắt buộc phải có đủ các quyền để thực hiện thao tác này",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "Yêu cầu quyền truy cập",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "Chưa chọn máy chủ",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "Vận chuyển",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "Thêm phương thức vận chuyển",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "Đã vận chuyển",
|
||||
"@shipped": {},
|
||||
"sku": "Mã sản phẩm",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "Tổng tiền",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "Chuyển",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "Trang web",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "分配库存",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "已分配库存",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "显示应用发布笔记",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "应用设置",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "条形码扫描已暂停",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "点击或按住以暂停扫描",
|
||||
"barcodeScanPause": "点击以暂停扫描",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "扫描以分配条形码",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "公司",
|
||||
"@companies": {},
|
||||
"complete": "完成",
|
||||
"@complete": {},
|
||||
"completeOrder": "完成订单",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "完成日期",
|
||||
"@completionDate": {},
|
||||
"configureServer": "配置服务器的设置",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "删除操作失败",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "您确认要删除此图片吗?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "删除图片",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "删除图片",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "删除零件",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "从数据库中删除此零件",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "删除操作成功",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "交货日期",
|
||||
"@deliveryDate": {},
|
||||
"description": "描述",
|
||||
"@description": {},
|
||||
"destination": "目的地",
|
||||
|
|
@ -268,7 +282,7 @@
|
|||
"@editItem": {},
|
||||
"editLineItem": "编辑行项目",
|
||||
"@editLineItem": {},
|
||||
"email": "Email",
|
||||
"email": "电子邮件",
|
||||
"@email": {},
|
||||
"enterPassword": "输入密码",
|
||||
"@enterPassword": {},
|
||||
|
|
@ -282,7 +296,7 @@
|
|||
"@errorCreate": {},
|
||||
"errorDelete": "删除数据库条目时出错",
|
||||
"@errorDelete": {},
|
||||
"errorDetails": "c w错误详情",
|
||||
"errorDetails": "错误详情",
|
||||
"@errorDetails": {},
|
||||
"errorFetch": "从服务器获取数据时出错",
|
||||
"@errorFetch": {},
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "在主屏幕上显示订单按钮",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "显示货件",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "在首页显示待处理货件",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "显示销售订单",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "在主屏幕上显示销售订单按钮",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "无效的用户名密码组合",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "发票",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "发票号码",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "下单任务",
|
||||
"@issue": {},
|
||||
"issueDate": "签发日期",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "关键词",
|
||||
"@keywords": {},
|
||||
"labelDriver": "标签打印机",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "选择标签打印机",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "打印标签",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "启用标签打印功能",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "创建新库存地点",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "默认位置",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "没有指定仓储位置",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "库存地点已更新",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "名称",
|
||||
"@name": {},
|
||||
"no": "否",
|
||||
"@no": {},
|
||||
"notApplicable": "不适用",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "未连接",
|
||||
"@notConnected": {},
|
||||
"notes": "注释",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "没有可用的图片",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "无可用价格",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "未找到此零件的定价数据",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "无子类别",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "无可用子类别",
|
||||
|
|
@ -624,11 +660,13 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "密码不能为空",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "等待",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "您的账户没有执行此操作所需的权限",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "需要授权:",
|
||||
"@permissionRequired": {},
|
||||
"phone": "Phone",
|
||||
"phone": "电话",
|
||||
"@phone": {},
|
||||
"printLabel": "打印标签",
|
||||
"@printLabel": {},
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "未选定服务器",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "发货",
|
||||
"@shipment": {},
|
||||
"shipments": "配送",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "待处理货件",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "添加配送",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "查询物流",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "标记为已核对",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "已核对",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "发货日期",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "编辑货件",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "参考编号",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "确认发货",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "取消核对",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "标记为未核对",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "货件信息已更新",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "已配送",
|
||||
"@shipped": {},
|
||||
"sku": "库存单位 (SKU)",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "总价",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "运单号",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "转移",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,13 +1174,15 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "网站",
|
||||
"@website": {},
|
||||
"yes": "是",
|
||||
"@yes": {},
|
||||
"price": "价格",
|
||||
"@price": {},
|
||||
"priceRange": "价格范围",
|
||||
"@priceRange": {},
|
||||
"priceOverrideMin": "Minimum Price Override",
|
||||
"priceOverrideMin": "最低价格覆盖",
|
||||
"@priceOverrideMin": {},
|
||||
"priceOverrideMax": "Maximum Price Override",
|
||||
"priceOverrideMax": "最高自定义价格",
|
||||
"@priceOverrideMax": {},
|
||||
"salePrice": "销售价格",
|
||||
"@salePrice": {},
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "币种",
|
||||
"@currency": {},
|
||||
"priceBreaks": "批发价",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "无可用价格",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "未找到此零件的定价数据",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "您确认要删除此图片吗?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "删除图片",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "删除图片",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
|
|
@ -46,6 +46,8 @@
|
|||
"@aspectRatioSquare": {},
|
||||
"allocateStock": "分配庫存",
|
||||
"@allocateStock": {},
|
||||
"allocatedStock": "Allocated Stock",
|
||||
"@allocatedStock": {},
|
||||
"appReleaseNotes": "顯示應用程式發布說明",
|
||||
"@appReleaseNotes": {},
|
||||
"appSettings": "程式設定",
|
||||
|
|
@ -100,7 +102,7 @@
|
|||
"@barcodeReceivePart": {},
|
||||
"barcodeScanPaused": "條碼掃描已暫停",
|
||||
"@barodeScanPaused": {},
|
||||
"barcodeScanPause": "點擊或按住以暫停掃描",
|
||||
"barcodeScanPause": "Tap to pause scanning",
|
||||
"@barcodeScanPause": {},
|
||||
"barcodeScanAssign": "掃描以設置條碼",
|
||||
"@barcodeScanAssign": {},
|
||||
|
|
@ -178,6 +180,10 @@
|
|||
"@companyUpdated": {},
|
||||
"companies": "公司",
|
||||
"@companies": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {},
|
||||
"completeOrder": "Complete Order",
|
||||
"@completeOrder": {},
|
||||
"completionDate": "Completion Date",
|
||||
"@completionDate": {},
|
||||
"configureServer": "伺服器設定",
|
||||
|
|
@ -222,12 +228,20 @@
|
|||
"@delete": {},
|
||||
"deleteFailed": "刪除失敗",
|
||||
"@deleteFailed": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {},
|
||||
"deletePart": "刪除零件",
|
||||
"@deletePart": {},
|
||||
"deletePartDetail": "從數據庫中刪除此零件",
|
||||
"@deletePartDetail": {},
|
||||
"deleteSuccess": "刪除成功",
|
||||
"@deleteSuccess": {},
|
||||
"deliveryDate": "Delivery Date",
|
||||
"@deliveryDate": {},
|
||||
"description": "敘述",
|
||||
"@description": {},
|
||||
"destination": "Destination",
|
||||
|
|
@ -370,6 +384,10 @@
|
|||
"@homeShowPo": {},
|
||||
"homeShowPoDescription": "在主屏幕上顯示訂單按鈕",
|
||||
"@homeShowPoDescription": {},
|
||||
"homeShowShipments": "Show Shipments",
|
||||
"@homeShowShipments": {},
|
||||
"homeShowShipmentsDescription": "Show pending shipments on the home screen",
|
||||
"@homeShowShipmentsDescription": {},
|
||||
"homeShowSo": "顯示銷售訂單",
|
||||
"@homeShowSo": {},
|
||||
"homeShowSoDescription": "在主屏幕上顯示銷售訂單按鈕",
|
||||
|
|
@ -436,6 +454,10 @@
|
|||
"@invalidSupplierPart": {},
|
||||
"invalidUsernamePassword": "無效的用户名密碼組合",
|
||||
"@invalidUsernamePassword": {},
|
||||
"invoice": "Invoice",
|
||||
"@invoice": {},
|
||||
"invoiceNumber": "Invoice Number",
|
||||
"@invoiceNumber": {},
|
||||
"issue": "發行",
|
||||
"@issue": {},
|
||||
"issueDate": "發行日期",
|
||||
|
|
@ -450,6 +472,10 @@
|
|||
"@itemUpdated": {},
|
||||
"keywords": "關鍵字",
|
||||
"@keywords": {},
|
||||
"labelDriver": "Label Driver",
|
||||
"@labelDriver": {},
|
||||
"labelSelectDriver": "Select Label Printer Driver",
|
||||
"@labelSelectDriver": {},
|
||||
"labelPrinting": "標籤印製",
|
||||
"@labelPrinting": {},
|
||||
"labelPrintingDetail": "啓用標籤打印功能",
|
||||
|
|
@ -488,6 +514,8 @@
|
|||
"@locationCreate": {},
|
||||
"locationCreateDetail": "創建新庫存地點",
|
||||
"@locationCreateDetail": {},
|
||||
"locationDefault": "Default Location",
|
||||
"@locationDefault": {},
|
||||
"locationNotSet": "沒有指定倉儲位置",
|
||||
"@locationNotSet": {},
|
||||
"locationUpdated": "庫存地點已更新",
|
||||
|
|
@ -516,6 +544,10 @@
|
|||
"@missingData": {},
|
||||
"name": "名稱",
|
||||
"@name": {},
|
||||
"no": "No",
|
||||
"@no": {},
|
||||
"notApplicable": "N/A",
|
||||
"@notApplicable": {},
|
||||
"notConnected": "未連接",
|
||||
"@notConnected": {},
|
||||
"notes": "備註",
|
||||
|
|
@ -532,6 +564,10 @@
|
|||
"@noResults": {},
|
||||
"noImageAvailable": "No image available",
|
||||
"@noImageAvailable": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"noSubcategories": "無子類別",
|
||||
"@noSubcategories": {},
|
||||
"noSubcategoriesAvailable": "無可用子類別",
|
||||
|
|
@ -624,6 +660,8 @@
|
|||
"@password": {},
|
||||
"passwordEmpty": "密碼不能為空",
|
||||
"@passwordEmpty": {},
|
||||
"pending": "Pending",
|
||||
"@pending": {},
|
||||
"permissionAccountDenied": "您的賬户沒有執行此操作所需的權限",
|
||||
"@permissionAccountDenied": {},
|
||||
"permissionRequired": "需要授權:",
|
||||
|
|
@ -902,10 +940,34 @@
|
|||
"@serverNotConnected": {},
|
||||
"serverNotSelected": "未選定服務器",
|
||||
"@serverNotSelected": {},
|
||||
"shipment": "Shipment",
|
||||
"@shipment": {},
|
||||
"shipments": "配送",
|
||||
"@shipments": {},
|
||||
"shipmentsPending": "Pending Shipments",
|
||||
"@shipmentsPending": {},
|
||||
"shipmentAdd": "添加配送",
|
||||
"@shipmentAdd": {},
|
||||
"shipmentCheck": "Check Shipment",
|
||||
"@shipmentCheck": {},
|
||||
"shipmentCheckDetail": "Mark this shipment as checked",
|
||||
"@shipmentCheckDetail": {},
|
||||
"shipmentChecked": "Shipment Checked",
|
||||
"@shipmentChecked": {},
|
||||
"shipmentDate": "Shipment Date",
|
||||
"@shipmentDate": {},
|
||||
"shipmentEdit": "Edit Shipment",
|
||||
"@shipmentEdit": {},
|
||||
"shipmentReference": "Shipment Reference",
|
||||
"@shipmentReference": {},
|
||||
"shipmentSend": "Send Shipment",
|
||||
"@shipmentSend": {},
|
||||
"shipmentUncheck": "Uncheck Shipment",
|
||||
"@shipmentUncheck": {},
|
||||
"shipmentUncheckDetail": "Mark this shipment as unchecked",
|
||||
"@shipmentUncheckDetail": {},
|
||||
"shipmentUpdated": "Shipment Updated",
|
||||
"@shipmentUpdated": {},
|
||||
"shipped": "已配送",
|
||||
"@shipped": {},
|
||||
"sku": "庫存單位 (SKU)",
|
||||
|
|
@ -1050,6 +1112,8 @@
|
|||
"@tokenMissingFromResponse": {},
|
||||
"totalPrice": "總價",
|
||||
"@totalPrice": {},
|
||||
"trackingNumber": "Tracking Number",
|
||||
"@trackingNumber": {},
|
||||
"transfer": "轉移",
|
||||
"@transfer": {
|
||||
"description": "transfer"
|
||||
|
|
@ -1110,6 +1174,8 @@
|
|||
"@viewSupplierPart": {},
|
||||
"website": "網站",
|
||||
"@website": {},
|
||||
"yes": "Yes",
|
||||
"@yes": {},
|
||||
"price": "Price",
|
||||
"@price": {},
|
||||
"priceRange": "Price Range",
|
||||
|
|
@ -1137,15 +1203,5 @@
|
|||
"currency": "Currency",
|
||||
"@currency": {},
|
||||
"priceBreaks": "Price Breaks",
|
||||
"@priceBreaks": {},
|
||||
"noPricingAvailable": "No pricing available",
|
||||
"@noPricingAvailable": {},
|
||||
"noPricingDataFound": "No pricing data found for this part",
|
||||
"@noPricingDataFound": {},
|
||||
"deleteImageConfirmation": "Are you sure you want to delete this image?",
|
||||
"@deleteImageConfirmation": {},
|
||||
"deleteImageTooltip": "Delete Image",
|
||||
"@deleteImageTooltip": {},
|
||||
"deleteImage": "Delete Image",
|
||||
"@deleteImage": {}
|
||||
"@priceBreaks": {}
|
||||
}
|
||||
420
lib/labels.dart
420
lib/labels.dart
|
|
@ -1,11 +1,206 @@
|
|||
import "package:flutter/cupertino.dart";
|
||||
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
||||
import "package:flutter/material.dart";
|
||||
import "package:inventree/api.dart";
|
||||
import "package:inventree/widget/progress.dart";
|
||||
import "package:inventree/preferences.dart";
|
||||
import "package:inventree/api_form.dart";
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/widget/progress.dart";
|
||||
import "package:inventree/widget/snacks.dart";
|
||||
|
||||
const String PRINT_LABEL_URL = "api/label/print/";
|
||||
|
||||
/*
|
||||
* Custom form handler for label printing.
|
||||
* Required to manage dynamic form fields.
|
||||
*/
|
||||
class LabelFormWidgetState extends APIFormWidgetState {
|
||||
LabelFormWidgetState() : super();
|
||||
|
||||
List<APIFormField> dynamicFields = [];
|
||||
|
||||
String pluginKey = "";
|
||||
String labelType = "";
|
||||
|
||||
@override
|
||||
List<APIFormField> get formFields {
|
||||
final baseFields = super.formFields;
|
||||
|
||||
if (pluginKey.isEmpty) {
|
||||
// Handle case where default plugin is provided
|
||||
final APIFormField pluginField = baseFields.firstWhere(
|
||||
(field) => field.name == "plugin",
|
||||
);
|
||||
|
||||
if (pluginField.initial_data != null) {
|
||||
pluginKey = pluginField.value.toString();
|
||||
onValueChanged("plugin", pluginKey);
|
||||
}
|
||||
}
|
||||
|
||||
return [...baseFields, ...dynamicFields];
|
||||
}
|
||||
|
||||
@override
|
||||
void onValueChanged(String field, dynamic value) {
|
||||
if (field == "plugin") {
|
||||
onPluginChanged(value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> handleSuccess(
|
||||
Map<String, dynamic> submittedData,
|
||||
Map<String, dynamic> responseData,
|
||||
) async {
|
||||
super.handleSuccess(submittedData, responseData);
|
||||
|
||||
// Save default values to the database
|
||||
final String? plugin = submittedData["plugin"]?.toString();
|
||||
final int? template = submittedData["template"] as int?;
|
||||
|
||||
// Save default printing plugin
|
||||
if (plugin != null) {
|
||||
InvenTreeSettingsManager().setValue(INV_LABEL_DEFAULT_PLUGIN, plugin);
|
||||
}
|
||||
|
||||
// Save default template for this label type
|
||||
if (labelType.isNotEmpty && template != null) {
|
||||
final defaultTemplates =
|
||||
await InvenTreeSettingsManager().getValue(
|
||||
INV_LABEL_DEFAULT_TEMPLATES,
|
||||
null,
|
||||
)
|
||||
as Map<String, dynamic>?;
|
||||
|
||||
InvenTreeSettingsManager().setValue(INV_LABEL_DEFAULT_TEMPLATES, {
|
||||
...?defaultTemplates,
|
||||
labelType: template,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Re-fetch printing options when the plugin changes
|
||||
*/
|
||||
Future<void> onPluginChanged(String key) async {
|
||||
showLoadingOverlay();
|
||||
|
||||
InvenTreeAPI().options(PRINT_LABEL_URL, params: {"plugin": key}).then((
|
||||
APIResponse response,
|
||||
) {
|
||||
if (response.isValid()) {
|
||||
updateFields(response);
|
||||
hideLoadingOverlay();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Callback when the server responds with printing options,
|
||||
* based on the selected printing plugin
|
||||
*/
|
||||
Future<void> updateFields(APIResponse response) async {
|
||||
Map<String, dynamic> printingFields = extractFields(response);
|
||||
|
||||
// Find only the fields which are not in the "base" fields
|
||||
List<APIFormField> uniqueFields = [];
|
||||
|
||||
for (String key in printingFields.keys) {
|
||||
if (super.formFields.any((field) => field.name == key)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
dynamic data = printingFields[key];
|
||||
|
||||
Map<String, dynamic> fieldData = {};
|
||||
|
||||
if (data is Map) {
|
||||
fieldData = Map<String, dynamic>.from(data);
|
||||
}
|
||||
|
||||
APIFormField field = APIFormField(key, fieldData);
|
||||
field.definition = extractFieldDefinition(
|
||||
printingFields,
|
||||
field.lookupPath,
|
||||
);
|
||||
|
||||
if (field.type == "dependent field") {
|
||||
// Dependent fields must be handled separately
|
||||
|
||||
// TODO: This should be refactored into api_form.dart
|
||||
dynamic child = field.definition["child"];
|
||||
|
||||
if (child != null && child is Map) {
|
||||
Map<String, dynamic> child_map = child as Map<String, dynamic>;
|
||||
dynamic nested_children = child_map["children"];
|
||||
|
||||
if (nested_children != null && nested_children is Map) {
|
||||
Map<String, dynamic> nested_child_map =
|
||||
nested_children as Map<String, dynamic>;
|
||||
|
||||
for (var field_key in nested_child_map.keys) {
|
||||
field = APIFormField(field_key, nested_child_map);
|
||||
field.definition = extractFieldDefinition(
|
||||
nested_child_map,
|
||||
field_key,
|
||||
);
|
||||
uniqueFields.add(field);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// This is a "standard" (non-nested) field
|
||||
uniqueFields.add(field);
|
||||
}
|
||||
}
|
||||
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
dynamicFields = uniqueFields;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> handlePrintingSuccess(
|
||||
BuildContext context,
|
||||
Map<String, dynamic> data,
|
||||
int repeatCount,
|
||||
) async {
|
||||
const int MAX_REPEATS = 60;
|
||||
|
||||
int id = (data["pk"] ?? -1) as int;
|
||||
bool complete = (data["complete"] ?? false) as bool;
|
||||
bool error = data["errors"] != null;
|
||||
String? output = data["output"] as String?;
|
||||
|
||||
if (complete) {
|
||||
if (output != null && output.isNotEmpty) {
|
||||
// An output was generated - we can download it!
|
||||
showSnackIcon(L10().downloading, success: true);
|
||||
InvenTreeAPI().downloadFile(output);
|
||||
} else {
|
||||
// Label was offloaded, likely to an external printer
|
||||
showSnackIcon(L10().printLabelSuccess, success: true);
|
||||
}
|
||||
} else if (error) {
|
||||
showSnackIcon(L10().printLabelFailure, success: false);
|
||||
} else if (repeatCount < MAX_REPEATS && id > 0) {
|
||||
// Printing is not yet complete, but we have a valid output ID
|
||||
Future.delayed(Duration(milliseconds: 1000), () async {
|
||||
// Re-query the printing status
|
||||
InvenTreeAPI().get("data-output/$id/").then((response) {
|
||||
if (response.statusCode == 200) {
|
||||
if (response.data is Map<String, dynamic>) {
|
||||
final responseData = response.data as Map<String, dynamic>;
|
||||
handlePrintingSuccess(context, responseData, repeatCount + 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Select a particular label, from a provided list of options,
|
||||
* and print against the selected instances.
|
||||
|
|
@ -13,202 +208,73 @@ import "package:inventree/widget/snacks.dart";
|
|||
*/
|
||||
Future<void> selectAndPrintLabel(
|
||||
BuildContext context,
|
||||
List<Map<String, dynamic>> labels,
|
||||
int instanceId,
|
||||
String labelType,
|
||||
String labelQuery,
|
||||
int instanceId,
|
||||
) async {
|
||||
if (!InvenTreeAPI().isConnected()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Find a list of available plugins which support label printing
|
||||
var plugins = InvenTreeAPI().getPlugins(mixin: "labels");
|
||||
|
||||
dynamic initial_label;
|
||||
dynamic initial_plugin;
|
||||
|
||||
List<Map<String, dynamic>> label_options = [];
|
||||
List<Map<String, dynamic>> plugin_options = [];
|
||||
|
||||
// Construct list of available label templates
|
||||
for (var label in labels) {
|
||||
String name = (label["name"] ?? "").toString();
|
||||
String description = (label["description"] ?? "").toString();
|
||||
|
||||
if (description.isNotEmpty) {
|
||||
name += " - ${description}";
|
||||
if (!InvenTreeAPI().supportsModernLabelPrinting) {
|
||||
// Legacy label printing API not supported
|
||||
showSnackIcon("Label printing not supported by server", success: false);
|
||||
return;
|
||||
}
|
||||
|
||||
int pk = (label["pk"] ?? -1) as int;
|
||||
// Fetch default values for label printing
|
||||
|
||||
if (name.isNotEmpty && pk > 0) {
|
||||
label_options.add({"display_name": name, "value": pk});
|
||||
}
|
||||
// Default template
|
||||
final defaultTemplates = await InvenTreeSettingsManager().getValue(
|
||||
INV_LABEL_DEFAULT_TEMPLATES,
|
||||
null,
|
||||
);
|
||||
int? defaultTemplate;
|
||||
|
||||
if (defaultTemplates != null && defaultTemplates is Map<String, dynamic>) {
|
||||
defaultTemplate = defaultTemplates[labelType] as int?;
|
||||
}
|
||||
|
||||
if (label_options.length == 1) {
|
||||
initial_label = label_options.first["value"];
|
||||
}
|
||||
|
||||
// Construct list of available plugins
|
||||
for (var plugin in plugins) {
|
||||
plugin_options.add({"display_name": plugin.humanName, "value": plugin.key});
|
||||
}
|
||||
|
||||
String selectedPlugin = await InvenTreeAPI().getUserSetting(
|
||||
"LABEL_DEFAULT_PRINTER",
|
||||
// Default plugin
|
||||
final defaultPlugin = await InvenTreeSettingsManager().getValue(
|
||||
INV_LABEL_DEFAULT_PLUGIN,
|
||||
null,
|
||||
);
|
||||
|
||||
if (selectedPlugin.isNotEmpty) {
|
||||
initial_plugin = selectedPlugin;
|
||||
} else if (plugin_options.length == 1) {
|
||||
initial_plugin = plugin_options.first["value"];
|
||||
}
|
||||
|
||||
Map<String, dynamic> fields = {
|
||||
"label": {
|
||||
"label": L10().labelTemplate,
|
||||
"type": "choice",
|
||||
"value": initial_label,
|
||||
"choices": label_options,
|
||||
"required": true,
|
||||
// Specify a default list of fields for printing
|
||||
// The selected plugin may optionally extend this list of fields dynamically
|
||||
Map<String, Map<String, dynamic>> baseFields = {
|
||||
"template": {
|
||||
"default": defaultTemplate,
|
||||
"filters": {
|
||||
"enabled": true,
|
||||
"model_type": labelType,
|
||||
"items": instanceId.toString(),
|
||||
},
|
||||
},
|
||||
"plugin": {
|
||||
"label": L10().pluginPrinter,
|
||||
"type": "choice",
|
||||
"value": initial_plugin,
|
||||
"choices": plugin_options,
|
||||
"required": true,
|
||||
"default": defaultPlugin,
|
||||
"pk_field": "key",
|
||||
"filters": {"enabled": true, "mixin": "labels"},
|
||||
},
|
||||
"items": {
|
||||
"hidden": true,
|
||||
"value": [instanceId],
|
||||
},
|
||||
};
|
||||
|
||||
final formHandler = LabelFormWidgetState();
|
||||
formHandler.labelType = labelType;
|
||||
|
||||
launchApiForm(
|
||||
context,
|
||||
L10().printLabel,
|
||||
"",
|
||||
fields,
|
||||
icon: TablerIcons.printer,
|
||||
validate: (Map<String, dynamic> data) {
|
||||
final template = data["label"];
|
||||
final plugin = data["plugin"];
|
||||
|
||||
if (template == null) {
|
||||
showSnackIcon(L10().labelSelectTemplate, success: false);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (plugin == null) {
|
||||
showSnackIcon(L10().labelSelectPrinter, success: false);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
onSuccess: (Map<String, dynamic> data) async {
|
||||
int labelId = (data["label"] ?? -1) as int;
|
||||
var pluginKey = data["plugin"];
|
||||
|
||||
bool result = false;
|
||||
|
||||
if (labelId != -1 && pluginKey != null) {
|
||||
showLoadingOverlay();
|
||||
|
||||
if (InvenTreeAPI().supportsModernLabelPrinting) {
|
||||
// Modern label printing API uses a POST request to a single API endpoint.
|
||||
await InvenTreeAPI()
|
||||
.post(
|
||||
"/label/print/",
|
||||
body: {
|
||||
"plugin": pluginKey,
|
||||
"template": labelId,
|
||||
"items": [instanceId],
|
||||
},
|
||||
)
|
||||
.then((APIResponse response) {
|
||||
if (response.isValid() &&
|
||||
response.statusCode >= 200 &&
|
||||
response.statusCode <= 201) {
|
||||
var data = response.asMap();
|
||||
|
||||
if (data.containsKey("output")) {
|
||||
String? label_file = (data["output"]) as String?;
|
||||
|
||||
if (label_file != null && label_file.isNotEmpty) {
|
||||
// Attempt to open generated file
|
||||
InvenTreeAPI().downloadFile(label_file);
|
||||
}
|
||||
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Legacy label printing API
|
||||
// Uses a GET request to a specially formed URL which depends on the parameters
|
||||
String url =
|
||||
"/label/${labelType}/${labelId}/print/?${labelQuery}&plugin=${pluginKey}";
|
||||
await InvenTreeAPI().get(url).then((APIResponse response) {
|
||||
if (response.isValid() && response.statusCode == 200) {
|
||||
var data = response.asMap();
|
||||
if (data.containsKey("file")) {
|
||||
var label_file = (data["file"] ?? "") as String;
|
||||
|
||||
// Attempt to open remote file
|
||||
InvenTreeAPI().downloadFile(label_file);
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
hideLoadingOverlay();
|
||||
|
||||
if (result) {
|
||||
showSnackIcon(L10().printLabelSuccess, success: true);
|
||||
} else {
|
||||
showSnackIcon(L10().printLabelFailure, success: false);
|
||||
}
|
||||
}
|
||||
PRINT_LABEL_URL,
|
||||
baseFields,
|
||||
method: "POST",
|
||||
modelData: {"plugin": defaultPlugin, "template": defaultTemplate},
|
||||
formHandler: formHandler,
|
||||
onSuccess: (data) async {
|
||||
handlePrintingSuccess(context, data, 0);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
* Discover which label templates are available for a given item
|
||||
*/
|
||||
Future<List<Map<String, dynamic>>> getLabelTemplates(
|
||||
String labelType,
|
||||
Map<String, String> data,
|
||||
) async {
|
||||
if (!InvenTreeAPI().isConnected() ||
|
||||
!InvenTreeAPI().supportsMixin("labels")) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// Filter by active plugins
|
||||
data["enabled"] = "true";
|
||||
|
||||
String url = "/label/template/";
|
||||
|
||||
if (InvenTreeAPI().supportsModernLabelPrinting) {
|
||||
data["model_type"] = labelType;
|
||||
} else {
|
||||
// Legacy label printing API endpoint
|
||||
url = "/label/${labelType}/";
|
||||
}
|
||||
|
||||
List<Map<String, dynamic>> labels = [];
|
||||
|
||||
await InvenTreeAPI().get(url, params: data).then((APIResponse response) {
|
||||
if (response.isValid() && response.statusCode == 200) {
|
||||
for (var label in response.resultsList()) {
|
||||
if (label is Map<String, dynamic>) {
|
||||
labels.add(label);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return labels;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import "package:path/path.dart";
|
|||
const String INV_HOME_SHOW_SUBSCRIBED = "homeShowSubscribed";
|
||||
const String INV_HOME_SHOW_PO = "homeShowPo";
|
||||
const String INV_HOME_SHOW_SO = "homeShowSo";
|
||||
const String INV_HOME_SHOW_SHIPMENTS = "homeShowShipments";
|
||||
const String INV_HOME_SHOW_MANUFACTURERS = "homeShowManufacturers";
|
||||
const String INV_HOME_SHOW_CUSTOMERS = "homeShowCustomers";
|
||||
const String INV_HOME_SHOW_SUPPLIERS = "homeShowSuppliers";
|
||||
|
|
@ -24,10 +25,13 @@ const int SCREEN_ORIENTATION_LANDSCAPE = 2;
|
|||
const String INV_SOUNDS_BARCODE = "barcodeSounds";
|
||||
const String INV_SOUNDS_SERVER = "serverSounds";
|
||||
|
||||
// Label printing settings
|
||||
const String INV_ENABLE_LABEL_PRINTING = "enableLabelPrinting";
|
||||
const String INV_LABEL_DEFAULT_TEMPLATES = "defaultLabelTemplates";
|
||||
const String INV_LABEL_DEFAULT_PRINTER = "defaultLabelPrinter";
|
||||
const String INV_LABEL_DEFAULT_PLUGIN = "defaultLabelPlugin";
|
||||
|
||||
// Part settings
|
||||
const String INV_PART_SHOW_PARAMETERS = "partShowParameters";
|
||||
const String INV_PART_SHOW_BOM = "partShowBom";
|
||||
const String INV_PART_SHOW_PRICING = "partShowPricing";
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,8 @@ class InvenTreeAboutWidget extends StatelessWidget {
|
|||
var url = Uri(
|
||||
scheme: "https",
|
||||
host: "github.com",
|
||||
path: "inventree/inventree-app/issues/new?title=Enter+bug+description",
|
||||
path: "inventree/inventree-app/issues/new/",
|
||||
queryParameters: {"title": "Enter bug description"},
|
||||
);
|
||||
|
||||
if (await canLaunchUrl(url)) {
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ class _HomeScreenSettingsState extends State<HomeScreenSettingsWidget> {
|
|||
bool homeShowSubscribed = true;
|
||||
bool homeShowPo = true;
|
||||
bool homeShowSo = true;
|
||||
bool homeShowShipments = true;
|
||||
bool homeShowSuppliers = true;
|
||||
bool homeShowManufacturers = true;
|
||||
bool homeShowCustomers = true;
|
||||
|
|
@ -46,6 +47,11 @@ class _HomeScreenSettingsState extends State<HomeScreenSettingsWidget> {
|
|||
homeShowSo =
|
||||
await InvenTreeSettingsManager().getValue(INV_HOME_SHOW_SO, true)
|
||||
as bool;
|
||||
|
||||
homeShowShipments =
|
||||
await InvenTreeSettingsManager().getValue(INV_HOME_SHOW_SHIPMENTS, true)
|
||||
as bool;
|
||||
|
||||
homeShowManufacturers =
|
||||
await InvenTreeSettingsManager().getValue(
|
||||
INV_HOME_SHOW_MANUFACTURERS,
|
||||
|
|
@ -118,6 +124,23 @@ class _HomeScreenSettingsState extends State<HomeScreenSettingsWidget> {
|
|||
},
|
||||
),
|
||||
),
|
||||
ListTile(
|
||||
title: Text(L10().homeShowShipments),
|
||||
subtitle: Text(L10().homeShowShipmentsDescription),
|
||||
leading: Icon(TablerIcons.cube_send),
|
||||
trailing: Switch(
|
||||
value: homeShowShipments,
|
||||
onChanged: (bool value) {
|
||||
InvenTreeSettingsManager().setValue(
|
||||
INV_HOME_SHOW_SHIPMENTS,
|
||||
value,
|
||||
);
|
||||
setState(() {
|
||||
homeShowShipments = value;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
ListTile(
|
||||
title: Text(L10().homeShowSuppliers),
|
||||
subtitle: Text(L10().homeShowSuppliersDescription),
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ class InvenTreePartSettingsWidget extends StatefulWidget {
|
|||
class _InvenTreePartSettingsState extends State<InvenTreePartSettingsWidget> {
|
||||
_InvenTreePartSettingsState();
|
||||
|
||||
bool partShowParameters = true;
|
||||
bool partShowBom = true;
|
||||
bool partShowPricing = true;
|
||||
bool stockShowHistory = false;
|
||||
|
|
@ -28,10 +27,6 @@ class _InvenTreePartSettingsState extends State<InvenTreePartSettingsWidget> {
|
|||
}
|
||||
|
||||
Future<void> loadSettings() async {
|
||||
partShowParameters = await InvenTreeSettingsManager().getBool(
|
||||
INV_PART_SHOW_PARAMETERS,
|
||||
true,
|
||||
);
|
||||
partShowBom = await InvenTreeSettingsManager().getBool(
|
||||
INV_PART_SHOW_BOM,
|
||||
true,
|
||||
|
|
@ -68,23 +63,6 @@ class _InvenTreePartSettingsState extends State<InvenTreePartSettingsWidget> {
|
|||
body: Container(
|
||||
child: ListView(
|
||||
children: [
|
||||
ListTile(
|
||||
title: Text(L10().parameters),
|
||||
subtitle: Text(L10().parametersSettingDetail),
|
||||
leading: Icon(TablerIcons.list),
|
||||
trailing: Switch(
|
||||
value: partShowParameters,
|
||||
onChanged: (bool value) {
|
||||
InvenTreeSettingsManager().setValue(
|
||||
INV_PART_SHOW_PARAMETERS,
|
||||
value,
|
||||
);
|
||||
setState(() {
|
||||
partShowParameters = value;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
ListTile(
|
||||
title: Text(L10().bom),
|
||||
subtitle: Text(L10().bomEnable),
|
||||
|
|
|
|||
|
|
@ -2,15 +2,13 @@ import "dart:io";
|
|||
|
||||
import "package:flutter/material.dart";
|
||||
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
||||
import "package:one_context/one_context.dart";
|
||||
import "package:url_launcher/url_launcher.dart";
|
||||
|
||||
import "package:inventree/api.dart";
|
||||
import "package:inventree/inventree/attachment.dart";
|
||||
import "package:inventree/widget/link_icon.dart";
|
||||
import "package:one_context/one_context.dart";
|
||||
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/app_colors.dart";
|
||||
|
||||
import "package:inventree/inventree/model.dart";
|
||||
|
||||
import "package:inventree/widget/fields.dart";
|
||||
import "package:inventree/widget/progress.dart";
|
||||
import "package:inventree/widget/snacks.dart";
|
||||
|
|
@ -24,13 +22,13 @@ import "package:inventree/widget/refreshable_state.dart";
|
|||
*/
|
||||
class AttachmentWidget extends StatefulWidget {
|
||||
const AttachmentWidget(
|
||||
this.attachmentClass,
|
||||
this.modelType,
|
||||
this.modelId,
|
||||
this.imagePrefix,
|
||||
this.hasUploadPermission,
|
||||
) : super();
|
||||
|
||||
final InvenTreeAttachment attachmentClass;
|
||||
final String modelType;
|
||||
final int modelId;
|
||||
final bool hasUploadPermission;
|
||||
final String imagePrefix;
|
||||
|
|
@ -55,15 +53,15 @@ class _AttachmentWidgetState extends RefreshableState<AttachmentWidget> {
|
|||
IconButton(
|
||||
icon: Icon(TablerIcons.camera),
|
||||
onPressed: () async {
|
||||
widget.attachmentClass.uploadImage(
|
||||
InvenTreeAttachment()
|
||||
.uploadImage(
|
||||
widget.modelType,
|
||||
widget.modelId,
|
||||
prefix: widget.imagePrefix,
|
||||
);
|
||||
FilePickerDialog.pickImageFromCamera().then((File? file) {
|
||||
upload(context, file).then((_) {
|
||||
)
|
||||
.then((_) {
|
||||
refresh(context);
|
||||
});
|
||||
});
|
||||
},
|
||||
),
|
||||
IconButton(
|
||||
|
|
@ -84,8 +82,9 @@ class _AttachmentWidgetState extends RefreshableState<AttachmentWidget> {
|
|||
|
||||
showLoadingOverlay();
|
||||
|
||||
final bool result = await widget.attachmentClass.uploadAttachment(
|
||||
final bool result = await InvenTreeAttachment().uploadAttachment(
|
||||
file,
|
||||
widget.modelType,
|
||||
widget.modelId,
|
||||
);
|
||||
|
||||
|
|
@ -169,25 +168,24 @@ class _AttachmentWidgetState extends RefreshableState<AttachmentWidget> {
|
|||
Future<void> request(BuildContext context) async {
|
||||
Map<String, String> filters = {};
|
||||
|
||||
if (InvenTreeAPI().supportsModernAttachments) {
|
||||
filters["model_type"] = widget.attachmentClass.REF_MODEL_TYPE;
|
||||
filters["model_type"] = widget.modelType;
|
||||
filters["model_id"] = widget.modelId.toString();
|
||||
} else {
|
||||
filters[widget.attachmentClass.REFERENCE_FIELD] = widget.modelId
|
||||
.toString();
|
||||
}
|
||||
|
||||
await widget.attachmentClass.list(filters: filters).then((var results) {
|
||||
attachments.clear();
|
||||
List<InvenTreeAttachment> _attachments = [];
|
||||
|
||||
InvenTreeAttachment().list(filters: filters).then((var results) {
|
||||
for (var result in results) {
|
||||
if (result is InvenTreeAttachment) {
|
||||
attachments.add(result);
|
||||
_attachments.add(result);
|
||||
}
|
||||
}
|
||||
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
attachments = _attachments;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
@ -212,17 +210,14 @@ class _AttachmentWidgetState extends RefreshableState<AttachmentWidget> {
|
|||
},
|
||||
),
|
||||
);
|
||||
} else if (attachment.link.isNotEmpty) {
|
||||
} else if (attachment.hasLink) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(attachment.link),
|
||||
subtitle: Text(attachment.comment),
|
||||
leading: Icon(TablerIcons.link, color: COLOR_ACTION),
|
||||
onTap: () async {
|
||||
var uri = Uri.tryParse(attachment.link.trimLeft());
|
||||
if (uri != null && await canLaunchUrl(uri)) {
|
||||
await launchUrl(uri);
|
||||
}
|
||||
attachment.openLink();
|
||||
},
|
||||
onLongPress: () {
|
||||
showOptionsMenu(context, attachment);
|
||||
|
|
@ -244,3 +239,40 @@ class _AttachmentWidgetState extends RefreshableState<AttachmentWidget> {
|
|||
return tiles;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Return a ListTile to display attachments for the specified model
|
||||
*/
|
||||
ListTile? ShowAttachmentsItem(
|
||||
BuildContext context,
|
||||
String modelType,
|
||||
int modelId,
|
||||
String imagePrefix,
|
||||
int attachmentCount,
|
||||
bool hasUploadPermission,
|
||||
) {
|
||||
if (!InvenTreeAPI().supportsModernAttachments) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return ListTile(
|
||||
title: Text(L10().attachments),
|
||||
leading: Icon(TablerIcons.file, color: COLOR_ACTION),
|
||||
trailing: LinkIcon(
|
||||
text: attachmentCount > 0 ? attachmentCount.toString() : null,
|
||||
),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => AttachmentWidget(
|
||||
modelType,
|
||||
modelId,
|
||||
imagePrefix,
|
||||
hasUploadPermission,
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
import "package:flutter/material.dart";
|
||||
import "package:flutter_speed_dial/flutter_speed_dial.dart";
|
||||
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
||||
import "package:inventree/inventree/attachment.dart";
|
||||
import "package:inventree/inventree/parameter.dart";
|
||||
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/api.dart";
|
||||
|
|
@ -13,6 +15,7 @@ import "package:inventree/widget/attachment_widget.dart";
|
|||
import "package:inventree/widget/link_icon.dart";
|
||||
import "package:inventree/widget/order/purchase_order_list.dart";
|
||||
import "package:inventree/widget/order/sales_order_list.dart";
|
||||
import "package:inventree/widget/parameter_widget.dart";
|
||||
import "package:inventree/widget/refreshable_state.dart";
|
||||
import "package:inventree/widget/snacks.dart";
|
||||
import "package:inventree/widget/company/supplier_part_list.dart";
|
||||
|
|
@ -37,6 +40,7 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> {
|
|||
int outstandingPurchaseOrders = 0;
|
||||
int outstandingSalesOrders = 0;
|
||||
|
||||
int parameterCount = 0;
|
||||
int attachmentCount = 0;
|
||||
|
||||
@override
|
||||
|
|
@ -184,9 +188,19 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> {
|
|||
}
|
||||
});
|
||||
|
||||
InvenTreeCompanyAttachment().countAttachments(widget.company.pk).then((
|
||||
value,
|
||||
) {
|
||||
InvenTreeParameter()
|
||||
.countParameters(InvenTreeCompany.MODEL_TYPE, widget.company.pk)
|
||||
.then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
parameterCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
InvenTreeAttachment()
|
||||
.countAttachments(InvenTreeCompany.MODEL_TYPE, widget.company.pk)
|
||||
.then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
attachmentCount = value;
|
||||
|
|
@ -287,7 +301,7 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> {
|
|||
}
|
||||
|
||||
// External link
|
||||
if (widget.company.link.isNotEmpty) {
|
||||
if (widget.company.hasLink) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().link),
|
||||
|
|
@ -393,29 +407,31 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> {
|
|||
);
|
||||
}
|
||||
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().attachments),
|
||||
leading: Icon(TablerIcons.file, color: COLOR_ACTION),
|
||||
trailing: LinkIcon(
|
||||
text: attachmentCount > 0 ? attachmentCount.toString() : null,
|
||||
),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
ListTile? parameterTile = ShowParametersItem(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => AttachmentWidget(
|
||||
InvenTreeCompanyAttachment(),
|
||||
InvenTreeCompany.MODEL_TYPE,
|
||||
widget.company.pk,
|
||||
parameterCount,
|
||||
widget.company.canEdit,
|
||||
);
|
||||
|
||||
if (parameterTile != null) {
|
||||
tiles.add(parameterTile);
|
||||
}
|
||||
|
||||
ListTile? attachmentTile = ShowAttachmentsItem(
|
||||
context,
|
||||
InvenTreeCompany.MODEL_TYPE,
|
||||
widget.company.pk,
|
||||
widget.company.name,
|
||||
InvenTreeCompany().canEdit,
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
attachmentCount,
|
||||
widget.company.canEdit,
|
||||
);
|
||||
|
||||
if (attachmentTile != null) {
|
||||
tiles.add(attachmentTile);
|
||||
}
|
||||
|
||||
return tiles;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
import "package:flutter/material.dart";
|
||||
import "package:flutter_speed_dial/flutter_speed_dial.dart";
|
||||
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
||||
import "package:inventree/inventree/attachment.dart";
|
||||
import "package:inventree/inventree/parameter.dart";
|
||||
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/api.dart";
|
||||
|
|
@ -8,11 +10,12 @@ import "package:inventree/app_colors.dart";
|
|||
|
||||
import "package:inventree/inventree/company.dart";
|
||||
import "package:inventree/inventree/part.dart";
|
||||
import "package:inventree/widget/attachment_widget.dart";
|
||||
import "package:inventree/widget/parameter_widget.dart";
|
||||
|
||||
import "package:inventree/widget/refreshable_state.dart";
|
||||
import "package:inventree/widget/snacks.dart";
|
||||
import "package:inventree/widget/progress.dart";
|
||||
import "package:url_launcher/url_launcher.dart";
|
||||
|
||||
/*
|
||||
* Detail widget for viewing a single ManufacturerPart instance
|
||||
|
|
@ -32,6 +35,9 @@ class _ManufacturerPartDisplayState
|
|||
extends RefreshableState<ManufacturerPartDetailWidget> {
|
||||
_ManufacturerPartDisplayState();
|
||||
|
||||
int parameterCount = 0;
|
||||
int attachmentCount = 0;
|
||||
|
||||
@override
|
||||
String getAppBarTitle() => L10().manufacturerPart;
|
||||
|
||||
|
|
@ -43,7 +49,34 @@ class _ManufacturerPartDisplayState
|
|||
|
||||
if (!result) {
|
||||
Navigator.of(context).pop();
|
||||
return;
|
||||
}
|
||||
|
||||
InvenTreeParameter()
|
||||
.countParameters(
|
||||
InvenTreeManufacturerPart.MODEL_TYPE,
|
||||
widget.manufacturerPart.pk,
|
||||
)
|
||||
.then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
parameterCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
InvenTreeAttachment()
|
||||
.countAttachments(
|
||||
InvenTreeManufacturerPart.MODEL_TYPE,
|
||||
widget.manufacturerPart.pk,
|
||||
)
|
||||
.then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
attachmentCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> editManufacturerPart(BuildContext context) async {
|
||||
|
|
@ -92,11 +125,6 @@ class _ManufacturerPartDisplayState
|
|||
List<Widget> getTiles(BuildContext context) {
|
||||
List<Widget> tiles = [];
|
||||
|
||||
if (loading) {
|
||||
tiles.add(progressIndicator());
|
||||
return tiles;
|
||||
}
|
||||
|
||||
// Internal Part
|
||||
tiles.add(
|
||||
ListTile(
|
||||
|
|
@ -163,21 +191,43 @@ class _ManufacturerPartDisplayState
|
|||
);
|
||||
}
|
||||
|
||||
if (widget.manufacturerPart.link.isNotEmpty) {
|
||||
if (widget.manufacturerPart.hasLink) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(widget.manufacturerPart.link),
|
||||
leading: Icon(TablerIcons.link, color: COLOR_ACTION),
|
||||
onTap: () async {
|
||||
var uri = Uri.tryParse(widget.manufacturerPart.link);
|
||||
if (uri != null && await canLaunchUrl(uri)) {
|
||||
await launchUrl(uri);
|
||||
}
|
||||
widget.manufacturerPart.openLink();
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
ListTile? parameterTile = ShowParametersItem(
|
||||
context,
|
||||
InvenTreeManufacturerPart.MODEL_TYPE,
|
||||
widget.manufacturerPart.pk,
|
||||
parameterCount,
|
||||
widget.manufacturerPart.canEdit,
|
||||
);
|
||||
|
||||
if (parameterTile != null) {
|
||||
tiles.add(parameterTile);
|
||||
}
|
||||
|
||||
ListTile? attachmentTile = ShowAttachmentsItem(
|
||||
context,
|
||||
InvenTreeManufacturerPart.MODEL_TYPE,
|
||||
widget.manufacturerPart.pk,
|
||||
widget.manufacturerPart.MPN,
|
||||
attachmentCount,
|
||||
widget.manufacturerPart.canEdit,
|
||||
);
|
||||
|
||||
if (attachmentTile != null) {
|
||||
tiles.add(attachmentTile);
|
||||
}
|
||||
|
||||
return tiles;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
import "package:flutter/material.dart";
|
||||
import "package:flutter_speed_dial/flutter_speed_dial.dart";
|
||||
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
||||
import "package:inventree/helpers.dart";
|
||||
import "package:inventree/inventree/attachment.dart";
|
||||
import "package:inventree/inventree/parameter.dart";
|
||||
import "package:inventree/widget/attachment_widget.dart";
|
||||
import "package:inventree/widget/link_icon.dart";
|
||||
import "package:url_launcher/url_launcher.dart";
|
||||
|
||||
import "package:inventree/app_colors.dart";
|
||||
import "package:inventree/l10.dart";
|
||||
|
|
@ -11,11 +14,13 @@ import "package:inventree/barcode/barcode.dart";
|
|||
|
||||
import "package:inventree/inventree/part.dart";
|
||||
import "package:inventree/inventree/company.dart";
|
||||
import "package:inventree/widget/parameter_widget.dart";
|
||||
|
||||
import "package:inventree/widget/progress.dart";
|
||||
import "package:inventree/widget/refreshable_state.dart";
|
||||
import "package:inventree/widget/snacks.dart";
|
||||
import "package:inventree/widget/company/manufacturer_part_detail.dart";
|
||||
import "package:inventree/widget/stock/stock_list.dart";
|
||||
|
||||
/*
|
||||
* Detail widget for viewing a single SupplierPart instance
|
||||
|
|
@ -34,6 +39,9 @@ class _SupplierPartDisplayState
|
|||
extends RefreshableState<SupplierPartDetailWidget> {
|
||||
_SupplierPartDisplayState();
|
||||
|
||||
int parameterCount = 0;
|
||||
int attachmentCount = 0;
|
||||
|
||||
@override
|
||||
String getAppBarTitle() => L10().supplierPart;
|
||||
|
||||
|
|
@ -96,7 +104,34 @@ class _SupplierPartDisplayState
|
|||
|
||||
if (!result) {
|
||||
Navigator.of(context).pop();
|
||||
return;
|
||||
}
|
||||
|
||||
InvenTreeParameter()
|
||||
.countParameters(
|
||||
InvenTreeSupplierPart.MODEL_TYPE,
|
||||
widget.supplierPart.pk,
|
||||
)
|
||||
.then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
parameterCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
InvenTreeAttachment()
|
||||
.countAttachments(
|
||||
InvenTreeSupplierPart.MODEL_TYPE,
|
||||
widget.supplierPart.pk,
|
||||
)
|
||||
.then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
attachmentCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -143,6 +178,28 @@ class _SupplierPartDisplayState
|
|||
);
|
||||
}
|
||||
|
||||
// Stock levels associated with this SupplierPart
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().availableStock),
|
||||
leading: Icon(TablerIcons.packages),
|
||||
trailing: LinkIcon(
|
||||
text: simpleNumberString(widget.supplierPart.inStock),
|
||||
),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => StockItemList({
|
||||
"in_stock": "true",
|
||||
"supplier_part": widget.supplierPart.pkString,
|
||||
}),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
// Supplier details
|
||||
tiles.add(
|
||||
ListTile(
|
||||
|
|
@ -197,7 +254,7 @@ class _SupplierPartDisplayState
|
|||
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().manufacturerPartNumber),
|
||||
title: Text(L10().manufacturerPart),
|
||||
subtitle: Text(widget.supplierPart.MPN),
|
||||
leading: Icon(TablerIcons.hash, color: COLOR_ACTION),
|
||||
trailing: LinkIcon(),
|
||||
|
|
@ -239,7 +296,7 @@ class _SupplierPartDisplayState
|
|||
);
|
||||
}
|
||||
|
||||
if (widget.supplierPart.link.isNotEmpty) {
|
||||
if (widget.supplierPart.hasLink) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().link),
|
||||
|
|
@ -247,10 +304,7 @@ class _SupplierPartDisplayState
|
|||
leading: Icon(TablerIcons.link, color: COLOR_ACTION),
|
||||
trailing: LinkIcon(external: true),
|
||||
onTap: () async {
|
||||
var uri = Uri.tryParse(widget.supplierPart.link);
|
||||
if (uri != null && await canLaunchUrl(uri)) {
|
||||
await launchUrl(uri);
|
||||
}
|
||||
widget.supplierPart.openLink();
|
||||
},
|
||||
),
|
||||
);
|
||||
|
|
@ -266,6 +320,31 @@ class _SupplierPartDisplayState
|
|||
);
|
||||
}
|
||||
|
||||
ListTile? parameterTile = ShowParametersItem(
|
||||
context,
|
||||
InvenTreeSupplierPart.MODEL_TYPE,
|
||||
widget.supplierPart.pk,
|
||||
parameterCount,
|
||||
widget.supplierPart.canEdit,
|
||||
);
|
||||
|
||||
if (parameterTile != null) {
|
||||
tiles.add(parameterTile);
|
||||
}
|
||||
|
||||
ListTile? attachmentTile = ShowAttachmentsItem(
|
||||
context,
|
||||
InvenTreeSupplierPart.MODEL_TYPE,
|
||||
widget.supplierPart.pk,
|
||||
widget.supplierPart.SKU,
|
||||
attachmentCount,
|
||||
widget.supplierPart.canEdit,
|
||||
);
|
||||
|
||||
if (attachmentTile != null) {
|
||||
tiles.add(attachmentTile);
|
||||
}
|
||||
|
||||
return tiles;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import "package:inventree/preferences.dart";
|
|||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/settings/select_server.dart";
|
||||
import "package:inventree/user_profile.dart";
|
||||
import "package:inventree/widget/order/so_shipment_list.dart";
|
||||
|
||||
import "package:inventree/widget/part/category_display.dart";
|
||||
import "package:inventree/widget/drawer.dart";
|
||||
|
|
@ -55,6 +56,7 @@ class _InvenTreeHomePageState extends State<InvenTreeHomePage>
|
|||
|
||||
bool homeShowPo = false;
|
||||
bool homeShowSo = false;
|
||||
bool homeShowShipments = false;
|
||||
bool homeShowSubscribed = false;
|
||||
bool homeShowManufacturers = false;
|
||||
bool homeShowCustomers = false;
|
||||
|
|
@ -112,6 +114,20 @@ class _InvenTreeHomePageState extends State<InvenTreeHomePage>
|
|||
);
|
||||
}
|
||||
|
||||
void _showPendingShipments(BuildContext context) {
|
||||
if (!InvenTreeAPI().checkConnection()) return;
|
||||
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => SOShipmentListWidget(
|
||||
title: L10().shipmentsPending,
|
||||
filters: {"order_outstanding": "true", "shipped": "false"},
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void _showSuppliers(BuildContext context) {
|
||||
if (!InvenTreeAPI().checkConnection()) return;
|
||||
|
||||
|
|
@ -167,6 +183,11 @@ class _InvenTreeHomePageState extends State<InvenTreeHomePage>
|
|||
homeShowSo =
|
||||
await InvenTreeSettingsManager().getValue(INV_HOME_SHOW_SO, true)
|
||||
as bool;
|
||||
|
||||
homeShowShipments =
|
||||
await InvenTreeSettingsManager().getValue(INV_HOME_SHOW_SHIPMENTS, true)
|
||||
as bool;
|
||||
|
||||
homeShowManufacturers =
|
||||
await InvenTreeSettingsManager().getValue(
|
||||
INV_HOME_SHOW_MANUFACTURERS,
|
||||
|
|
@ -325,6 +346,19 @@ class _InvenTreeHomePageState extends State<InvenTreeHomePage>
|
|||
);
|
||||
}
|
||||
|
||||
if (homeShowShipments && InvenTreeSalesOrderShipment().canView) {
|
||||
tiles.add(
|
||||
_listTile(
|
||||
context,
|
||||
L10().shipmentsPending,
|
||||
TablerIcons.cube_send,
|
||||
callback: () {
|
||||
_showPendingShipments(context);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// Suppliers
|
||||
if (homeShowSuppliers && InvenTreePurchaseOrder().canView) {
|
||||
tiles.add(
|
||||
|
|
|
|||
|
|
@ -241,7 +241,7 @@ class _POLineDetailWidgetState extends RefreshableState<POLineDetailWidget> {
|
|||
}
|
||||
|
||||
// External link
|
||||
if (widget.item.link.isNotEmpty) {
|
||||
if (widget.item.hasLink) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().link),
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import "package:inventree/app_colors.dart";
|
|||
import "package:inventree/barcode/barcode.dart";
|
||||
import "package:inventree/barcode/purchase_order.dart";
|
||||
import "package:inventree/helpers.dart";
|
||||
import "package:inventree/inventree/attachment.dart";
|
||||
import "package:inventree/inventree/parameter.dart";
|
||||
import "package:inventree/l10.dart";
|
||||
|
||||
import "package:inventree/inventree/model.dart";
|
||||
|
|
@ -21,6 +23,7 @@ import "package:inventree/widget/order/po_line_list.dart";
|
|||
|
||||
import "package:inventree/widget/attachment_widget.dart";
|
||||
import "package:inventree/widget/notes_widget.dart";
|
||||
import "package:inventree/widget/parameter_widget.dart";
|
||||
import "package:inventree/widget/progress.dart";
|
||||
import "package:inventree/widget/refreshable_state.dart";
|
||||
import "package:inventree/widget/snacks.dart";
|
||||
|
|
@ -50,6 +53,7 @@ class _PurchaseOrderDetailState
|
|||
|
||||
int completedLines = 0;
|
||||
int attachmentCount = 0;
|
||||
int parameterCount = 0;
|
||||
|
||||
bool showCameraShortcut = true;
|
||||
bool supportProjectCodes = false;
|
||||
|
|
@ -174,8 +178,12 @@ class _PurchaseOrderDetailState
|
|||
|
||||
/// Upload an image against the current PurchaseOrder
|
||||
Future<void> _uploadImage(BuildContext context) async {
|
||||
InvenTreePurchaseOrderAttachment()
|
||||
.uploadImage(widget.order.pk, prefix: widget.order.reference)
|
||||
InvenTreeAttachment()
|
||||
.uploadImage(
|
||||
InvenTreePurchaseOrder.MODEL_TYPE,
|
||||
widget.order.pk,
|
||||
prefix: widget.order.reference,
|
||||
)
|
||||
.then((result) => refresh(context));
|
||||
}
|
||||
|
||||
|
|
@ -295,9 +303,19 @@ class _PurchaseOrderDetailState
|
|||
}
|
||||
}
|
||||
|
||||
InvenTreePurchaseOrderAttachment().countAttachments(widget.order.pk).then((
|
||||
int value,
|
||||
) {
|
||||
InvenTreeParameter()
|
||||
.countParameters(InvenTreePurchaseOrder.MODEL_TYPE, widget.order.pk)
|
||||
.then((int value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
parameterCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
InvenTreeAttachment()
|
||||
.countAttachments(InvenTreePurchaseOrder.MODEL_TYPE, widget.order.pk)
|
||||
.then((int value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
attachmentCount = value;
|
||||
|
|
@ -565,30 +583,31 @@ class _PurchaseOrderDetailState
|
|||
),
|
||||
);
|
||||
|
||||
// Attachments
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().attachments),
|
||||
leading: Icon(TablerIcons.file, color: COLOR_ACTION),
|
||||
trailing: LinkIcon(
|
||||
text: attachmentCount > 0 ? attachmentCount.toString() : null,
|
||||
),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
ListTile? parameterTile = ShowParametersItem(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => AttachmentWidget(
|
||||
InvenTreePurchaseOrderAttachment(),
|
||||
InvenTreePurchaseOrder.MODEL_TYPE,
|
||||
widget.order.pk,
|
||||
parameterCount,
|
||||
widget.order.canEdit,
|
||||
);
|
||||
|
||||
if (parameterTile != null) {
|
||||
tiles.add(parameterTile);
|
||||
}
|
||||
|
||||
ListTile? attachmentTile = ShowAttachmentsItem(
|
||||
context,
|
||||
InvenTreePurchaseOrder.MODEL_TYPE,
|
||||
widget.order.pk,
|
||||
widget.order.reference,
|
||||
attachmentCount,
|
||||
widget.order.canEdit,
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
if (attachmentTile != null) {
|
||||
tiles.add(attachmentTile);
|
||||
}
|
||||
|
||||
return tiles;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,13 +3,16 @@ import "package:flutter_speed_dial/flutter_speed_dial.dart";
|
|||
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
||||
import "package:inventree/barcode/barcode.dart";
|
||||
import "package:inventree/barcode/sales_order.dart";
|
||||
import "package:inventree/inventree/attachment.dart";
|
||||
import "package:inventree/inventree/company.dart";
|
||||
import "package:inventree/inventree/parameter.dart";
|
||||
import "package:inventree/inventree/sales_order.dart";
|
||||
import "package:inventree/preferences.dart";
|
||||
import "package:inventree/widget/link_icon.dart";
|
||||
import "package:inventree/widget/order/so_extra_line_list.dart";
|
||||
import "package:inventree/widget/order/so_line_list.dart";
|
||||
import "package:inventree/widget/order/so_shipment_list.dart";
|
||||
import "package:inventree/widget/parameter_widget.dart";
|
||||
import "package:inventree/widget/refreshable_state.dart";
|
||||
|
||||
import "package:inventree/l10.dart";
|
||||
|
|
@ -42,6 +45,7 @@ class _SalesOrderDetailState extends RefreshableState<SalesOrderDetailWidget> {
|
|||
bool showCameraShortcut = true;
|
||||
bool supportsProjectCodes = false;
|
||||
int attachmentCount = 0;
|
||||
int parameterCount = 0;
|
||||
|
||||
@override
|
||||
String getAppBarTitle() {
|
||||
|
|
@ -108,8 +112,12 @@ class _SalesOrderDetailState extends RefreshableState<SalesOrderDetailWidget> {
|
|||
|
||||
/// Upload an image for this order
|
||||
Future<void> _uploadImage(BuildContext context) async {
|
||||
InvenTreeSalesOrderAttachment()
|
||||
.uploadImage(widget.order.pk, prefix: widget.order.reference)
|
||||
InvenTreeAttachment()
|
||||
.uploadImage(
|
||||
InvenTreeSalesOrder.MODEL_TYPE,
|
||||
widget.order.pk,
|
||||
prefix: widget.order.reference,
|
||||
)
|
||||
.then((result) => refresh(context));
|
||||
}
|
||||
|
||||
|
|
@ -266,9 +274,19 @@ class _SalesOrderDetailState extends RefreshableState<SalesOrderDetailWidget> {
|
|||
true,
|
||||
);
|
||||
|
||||
InvenTreeSalesOrderAttachment().countAttachments(widget.order.pk).then((
|
||||
int value,
|
||||
) {
|
||||
InvenTreeParameter()
|
||||
.countParameters(InvenTreeSalesOrder.MODEL_TYPE, widget.order.pk)
|
||||
.then((int value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
parameterCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
InvenTreeAttachment()
|
||||
.countAttachments(InvenTreeSalesOrder.MODEL_TYPE, widget.order.pk)
|
||||
.then((int value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
attachmentCount = value;
|
||||
|
|
@ -375,24 +393,7 @@ class _SalesOrderDetailState extends RefreshableState<SalesOrderDetailWidget> {
|
|||
|
||||
Color lineColor = widget.order.complete ? COLOR_SUCCESS : COLOR_WARNING;
|
||||
|
||||
// Shipment progress
|
||||
if (widget.order.shipmentCount > 0) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().shipments),
|
||||
subtitle: ProgressBar(
|
||||
widget.order.completedShipmentCount.toDouble(),
|
||||
maximum: widget.order.shipmentCount.toDouble(),
|
||||
),
|
||||
leading: Icon(TablerIcons.truck_delivery),
|
||||
trailing: LargeText(
|
||||
"${widget.order.completedShipmentCount} / ${widget.order.shipmentCount}",
|
||||
color: lineColor,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// Line items progress
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().lineItems),
|
||||
|
|
@ -408,6 +409,24 @@ class _SalesOrderDetailState extends RefreshableState<SalesOrderDetailWidget> {
|
|||
),
|
||||
);
|
||||
|
||||
// Shipment progress
|
||||
if (widget.order.shipmentCount > 0) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().shipments),
|
||||
subtitle: ProgressBar(
|
||||
widget.order.completedShipmentCount.toDouble(),
|
||||
maximum: widget.order.shipmentCount.toDouble(),
|
||||
),
|
||||
leading: Icon(TablerIcons.cube_send),
|
||||
trailing: LargeText(
|
||||
"${widget.order.completedShipmentCount} / ${widget.order.shipmentCount}",
|
||||
color: lineColor,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// Extra line items
|
||||
tiles.add(
|
||||
ListTile(
|
||||
|
|
@ -491,30 +510,31 @@ class _SalesOrderDetailState extends RefreshableState<SalesOrderDetailWidget> {
|
|||
),
|
||||
);
|
||||
|
||||
// Attachments
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().attachments),
|
||||
leading: Icon(TablerIcons.file, color: COLOR_ACTION),
|
||||
trailing: LinkIcon(
|
||||
text: attachmentCount > 0 ? attachmentCount.toString() : null,
|
||||
),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
ListTile? parameterTile = ShowParametersItem(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => AttachmentWidget(
|
||||
InvenTreeSalesOrderAttachment(),
|
||||
InvenTreeSalesOrder.MODEL_TYPE,
|
||||
widget.order.pk,
|
||||
parameterCount,
|
||||
widget.order.canEdit,
|
||||
);
|
||||
|
||||
if (parameterTile != null) {
|
||||
tiles.add(parameterTile);
|
||||
}
|
||||
|
||||
ListTile? attachmentTile = ShowAttachmentsItem(
|
||||
context,
|
||||
InvenTreeSalesOrder.MODEL_TYPE,
|
||||
widget.order.pk,
|
||||
widget.order.reference,
|
||||
attachmentCount,
|
||||
widget.order.canEdit,
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
if (attachmentTile != null) {
|
||||
tiles.add(attachmentTile);
|
||||
}
|
||||
|
||||
return tiles;
|
||||
}
|
||||
|
||||
|
|
@ -522,8 +542,8 @@ class _SalesOrderDetailState extends RefreshableState<SalesOrderDetailWidget> {
|
|||
List<Widget> getTabIcons(BuildContext context) {
|
||||
return [
|
||||
Tab(text: L10().details),
|
||||
Tab(text: L10().shipments),
|
||||
Tab(text: L10().lineItems),
|
||||
Tab(text: L10().shipments),
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -531,8 +551,8 @@ class _SalesOrderDetailState extends RefreshableState<SalesOrderDetailWidget> {
|
|||
List<Widget> getTabs(BuildContext context) {
|
||||
return [
|
||||
ListView(children: orderTiles(context)),
|
||||
PaginatedSOShipmentList({"order": widget.order.pk.toString()}),
|
||||
PaginatedSOLineList({"order": widget.order.pk.toString()}),
|
||||
PaginatedSOShipmentList({"order": widget.order.pk.toString()}),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
69
lib/widget/order/so_allocation_list.dart
Normal file
69
lib/widget/order/so_allocation_list.dart
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
import "package:flutter/material.dart";
|
||||
import "package:inventree/api.dart";
|
||||
import "package:inventree/inventree/model.dart";
|
||||
import "package:inventree/inventree/part.dart";
|
||||
import "package:inventree/inventree/sales_order.dart";
|
||||
import "package:inventree/inventree/stock.dart";
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/widget/link_icon.dart";
|
||||
import "package:inventree/widget/paginator.dart";
|
||||
|
||||
class PaginatedSOAllocationList extends PaginatedSearchWidget {
|
||||
const PaginatedSOAllocationList(Map<String, String> filters)
|
||||
: super(filters: filters);
|
||||
|
||||
@override
|
||||
String get searchTitle => L10().allocatedStock;
|
||||
|
||||
@override
|
||||
_PaginatedSOAllocationListState createState() =>
|
||||
_PaginatedSOAllocationListState();
|
||||
}
|
||||
|
||||
class _PaginatedSOAllocationListState
|
||||
extends PaginatedSearchState<PaginatedSOAllocationList> {
|
||||
_PaginatedSOAllocationListState() : super();
|
||||
|
||||
@override
|
||||
String get prefix => "so_allocation_";
|
||||
|
||||
@override
|
||||
Map<String, String> get orderingOptions => {};
|
||||
|
||||
@override
|
||||
Map<String, Map<String, dynamic>> get filterOptions => {};
|
||||
|
||||
@override
|
||||
Future<InvenTreePageResponse?> requestPage(
|
||||
int limit,
|
||||
int offset,
|
||||
Map<String, String> params,
|
||||
) async {
|
||||
final page = await InvenTreeSalesOrderAllocation().listPaginated(
|
||||
limit,
|
||||
offset,
|
||||
filters: params,
|
||||
);
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget buildItem(BuildContext context, InvenTreeModel model) {
|
||||
InvenTreeSalesOrderAllocation allocation =
|
||||
model as InvenTreeSalesOrderAllocation;
|
||||
|
||||
InvenTreePart? part = allocation.part;
|
||||
InvenTreeStockItem? stockItem = allocation.stockItem;
|
||||
|
||||
return ListTile(
|
||||
title: Text(part?.fullname ?? ""),
|
||||
subtitle: Text(part?.description ?? ""),
|
||||
onTap: () async {
|
||||
stockItem?.goToDetailPage(context);
|
||||
},
|
||||
leading: InvenTreeAPI().getThumbnail(allocation.part?.thumbnail ?? ""),
|
||||
trailing: LargeText(stockItem?.serialOrQuantityDisplay() ?? ""),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -244,7 +244,7 @@ class _SOLineDetailWidgetState extends RefreshableState<SoLineDetailWidget> {
|
|||
}
|
||||
|
||||
// External link
|
||||
if (widget.item.link.isNotEmpty) {
|
||||
if (widget.item.hasLink) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().link),
|
||||
|
|
|
|||
381
lib/widget/order/so_shipment_detail.dart
Normal file
381
lib/widget/order/so_shipment_detail.dart
Normal file
|
|
@ -0,0 +1,381 @@
|
|||
/*
|
||||
* Widget for displaying detail view of a single SalesOrderShipment
|
||||
*/
|
||||
|
||||
import "package:flutter/material.dart";
|
||||
import "package:flutter_speed_dial/flutter_speed_dial.dart";
|
||||
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
||||
import "package:inventree/api.dart";
|
||||
import "package:inventree/api_form.dart";
|
||||
import "package:inventree/app_colors.dart";
|
||||
import "package:inventree/inventree/attachment.dart";
|
||||
import "package:inventree/inventree/sales_order.dart";
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/preferences.dart";
|
||||
import "package:inventree/widget/attachment_widget.dart";
|
||||
import "package:inventree/widget/link_icon.dart";
|
||||
import "package:inventree/widget/notes_widget.dart";
|
||||
import "package:inventree/widget/order/so_allocation_list.dart";
|
||||
import "package:inventree/widget/refreshable_state.dart";
|
||||
import "package:inventree/widget/snacks.dart";
|
||||
|
||||
class SOShipmentDetailWidget extends StatefulWidget {
|
||||
const SOShipmentDetailWidget(this.shipment, {Key? key}) : super(key: key);
|
||||
|
||||
final InvenTreeSalesOrderShipment shipment;
|
||||
|
||||
@override
|
||||
_SOShipmentDetailWidgetState createState() => _SOShipmentDetailWidgetState();
|
||||
}
|
||||
|
||||
class _SOShipmentDetailWidgetState
|
||||
extends RefreshableState<SOShipmentDetailWidget> {
|
||||
_SOShipmentDetailWidgetState();
|
||||
|
||||
// The SalesOrder associated with this shipment
|
||||
InvenTreeSalesOrder? order;
|
||||
|
||||
int attachmentCount = 0;
|
||||
bool showCameraShortcut = true;
|
||||
|
||||
@override
|
||||
String getAppBarTitle() => L10().shipment;
|
||||
|
||||
@override
|
||||
List<Widget> appBarActions(BuildContext context) {
|
||||
List<Widget> actions = [];
|
||||
|
||||
if (widget.shipment.canEdit) {
|
||||
actions.add(
|
||||
IconButton(
|
||||
icon: Icon(TablerIcons.edit),
|
||||
onPressed: () {
|
||||
_editShipment(context);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
return actions;
|
||||
}
|
||||
|
||||
Future<void> _editShipment(BuildContext context) async {
|
||||
var fields = widget.shipment.formFields();
|
||||
|
||||
fields["order"]?["hidden"] = true;
|
||||
|
||||
widget.shipment.editForm(
|
||||
context,
|
||||
L10().shipmentEdit,
|
||||
fields: fields,
|
||||
onSuccess: (data) async {
|
||||
refresh(context);
|
||||
showSnackIcon(L10().shipmentUpdated, success: true);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> request(BuildContext context) async {
|
||||
await widget.shipment.reload();
|
||||
|
||||
showCameraShortcut = await InvenTreeSettingsManager().getBool(
|
||||
INV_SO_SHOW_CAMERA,
|
||||
true,
|
||||
);
|
||||
|
||||
final so = await InvenTreeSalesOrder().get(widget.shipment.orderId);
|
||||
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
order = (so is InvenTreeSalesOrder ? so : null);
|
||||
});
|
||||
}
|
||||
|
||||
InvenTreeAttachment()
|
||||
.countAttachments(
|
||||
InvenTreeSalesOrderShipment.MODEL_TYPE,
|
||||
widget.shipment.pk,
|
||||
)
|
||||
.then((int value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
attachmentCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/// Upload an image for this shipment
|
||||
Future<void> _uploadImage(BuildContext context) async {
|
||||
InvenTreeAttachment()
|
||||
.uploadImage(
|
||||
InvenTreeSalesOrderShipment.MODEL_TYPE,
|
||||
widget.shipment.pk,
|
||||
prefix: widget.shipment.reference,
|
||||
)
|
||||
.then((result) => refresh(context));
|
||||
}
|
||||
|
||||
/// Mark this shipment as shipped
|
||||
Future<void> _sendShipment(BuildContext context) async {
|
||||
Map<String, dynamic> fields = {
|
||||
"shipment_date": {
|
||||
"value": widget.shipment.isShipped
|
||||
? widget.shipment.shipment_date!
|
||||
: DateTime.now().toIso8601String().split("T").first,
|
||||
},
|
||||
"tracking_number": {"value": widget.shipment.tracking_number},
|
||||
"invoice_number": {"value": widget.shipment.invoice_number},
|
||||
};
|
||||
|
||||
launchApiForm(
|
||||
context,
|
||||
L10().shipmentSend,
|
||||
widget.shipment.SHIP_SHIPMENT_URL,
|
||||
fields,
|
||||
method: "POST",
|
||||
onSuccess: (data) {
|
||||
refresh(context);
|
||||
showSnackIcon(L10().shipmentUpdated, success: true);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
List<SpeedDialChild> actionButtons(BuildContext context) {
|
||||
List<SpeedDialChild> actions = [];
|
||||
|
||||
if (!widget.shipment.canEdit) {
|
||||
// Exit early if we do not have edit permissions
|
||||
return actions;
|
||||
}
|
||||
|
||||
if (showCameraShortcut) {
|
||||
actions.add(
|
||||
SpeedDialChild(
|
||||
child: Icon(TablerIcons.camera, color: Colors.blue),
|
||||
label: L10().takePicture,
|
||||
onTap: () async {
|
||||
_uploadImage(context);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// Check shipment
|
||||
if (!widget.shipment.isChecked && !widget.shipment.isShipped) {
|
||||
actions.add(
|
||||
SpeedDialChild(
|
||||
child: Icon(TablerIcons.check, color: Colors.green),
|
||||
label: L10().shipmentCheck,
|
||||
onTap: () async {
|
||||
widget.shipment
|
||||
.update(values: {"checked_by": InvenTreeAPI().userId})
|
||||
.then((_) {
|
||||
showSnackIcon(L10().shipmentUpdated, success: true);
|
||||
refresh(context);
|
||||
});
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// Uncheck shipment
|
||||
if (widget.shipment.isChecked && !widget.shipment.isShipped) {
|
||||
actions.add(
|
||||
SpeedDialChild(
|
||||
child: Icon(TablerIcons.x, color: Colors.red),
|
||||
label: L10().shipmentUncheck,
|
||||
onTap: () async {
|
||||
widget.shipment.update(values: {"checked_by": null}).then((_) {
|
||||
showSnackIcon(L10().shipmentUpdated, success: true);
|
||||
refresh(context);
|
||||
});
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// Send shipment
|
||||
if (!widget.shipment.isShipped) {
|
||||
actions.add(
|
||||
SpeedDialChild(
|
||||
child: Icon(TablerIcons.truck_delivery, color: Colors.green),
|
||||
label: L10().shipmentSend,
|
||||
onTap: () async {
|
||||
_sendShipment(context);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// TODO: Cancel shipment
|
||||
|
||||
return actions;
|
||||
}
|
||||
|
||||
List<Widget> shipmentTiles(BuildContext context) {
|
||||
List<Widget> tiles = [];
|
||||
|
||||
final bool checked = widget.shipment.isChecked;
|
||||
final bool shipped = widget.shipment.isShipped;
|
||||
final bool delivered = widget.shipment.isDelivered;
|
||||
|
||||
// Order information
|
||||
if (order != null) {
|
||||
// Add SalesOrder information
|
||||
|
||||
tiles.add(
|
||||
Card(
|
||||
child: ListTile(
|
||||
title: Text(order!.reference),
|
||||
subtitle: Text(order!.description),
|
||||
leading: api.getThumbnail(order!.customer?.thumbnail ?? ""),
|
||||
trailing: LargeText(
|
||||
api.SalesOrderStatus.label(order!.status),
|
||||
color: api.SalesOrderStatus.color(order!.status),
|
||||
),
|
||||
onTap: () {
|
||||
order!.goToDetailPage(context);
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// Shipment reference number
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().shipmentReference),
|
||||
trailing: LargeText(widget.shipment.reference),
|
||||
leading: Icon(TablerIcons.hash),
|
||||
),
|
||||
);
|
||||
|
||||
if (widget.shipment.invoice_number.isNotEmpty) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().invoiceNumber),
|
||||
trailing: LargeText(widget.shipment.invoice_number),
|
||||
leading: Icon(TablerIcons.invoice),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// Tracking Number
|
||||
if (widget.shipment.tracking_number.isNotEmpty) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().trackingNumber),
|
||||
trailing: LargeText(widget.shipment.tracking_number),
|
||||
leading: Icon(TablerIcons.truck_delivery),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
if (checked || !shipped) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().shipmentChecked),
|
||||
trailing: LargeText(
|
||||
checked ? L10().yes : L10().no,
|
||||
color: checked ? COLOR_SUCCESS : COLOR_WARNING,
|
||||
),
|
||||
leading: Icon(
|
||||
checked ? TablerIcons.circle_check : TablerIcons.circle_x,
|
||||
color: checked ? COLOR_SUCCESS : COLOR_WARNING,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().shipmentDate),
|
||||
trailing: LargeText(
|
||||
shipped ? widget.shipment.shipment_date! : L10().notApplicable,
|
||||
),
|
||||
leading: Icon(
|
||||
shipped ? TablerIcons.calendar_check : TablerIcons.calendar_cancel,
|
||||
color: shipped ? COLOR_SUCCESS : COLOR_WARNING,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().deliveryDate),
|
||||
trailing: LargeText(
|
||||
delivered ? widget.shipment.delivery_date! : L10().notApplicable,
|
||||
),
|
||||
leading: Icon(
|
||||
delivered ? TablerIcons.calendar_check : TablerIcons.calendar_cancel,
|
||||
color: delivered ? COLOR_SUCCESS : COLOR_WARNING,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
// External link
|
||||
if (widget.shipment.hasLink) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().link),
|
||||
leading: Icon(TablerIcons.link, color: COLOR_ACTION),
|
||||
trailing: LinkIcon(),
|
||||
onTap: () async {
|
||||
widget.shipment.openLink();
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// Notes tile
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().notes),
|
||||
leading: Icon(TablerIcons.note, color: COLOR_ACTION),
|
||||
trailing: LinkIcon(),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => NotesWidget(widget.shipment),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
ListTile? attachmentTile = ShowAttachmentsItem(
|
||||
context,
|
||||
InvenTreeSalesOrderShipment.MODEL_TYPE,
|
||||
widget.shipment.pk,
|
||||
widget.shipment.reference,
|
||||
attachmentCount,
|
||||
widget.shipment.canEdit,
|
||||
);
|
||||
|
||||
if (attachmentTile != null) {
|
||||
tiles.add(attachmentTile);
|
||||
}
|
||||
|
||||
return tiles;
|
||||
}
|
||||
|
||||
@override
|
||||
List<Widget> getTabIcons(BuildContext context) {
|
||||
return [Tab(text: L10().details), Tab(text: L10().allocatedStock)];
|
||||
}
|
||||
|
||||
@override
|
||||
List<Widget> getTabs(BuildContext context) {
|
||||
return [
|
||||
ListView(children: shipmentTiles(context)),
|
||||
PaginatedSOAllocationList({
|
||||
"order": widget.shipment.orderId.toString(),
|
||||
"shipment": widget.shipment.pk.toString(),
|
||||
}),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -7,6 +7,35 @@ import "package:inventree/widget/paginator.dart";
|
|||
|
||||
import "package:inventree/inventree/model.dart";
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/widget/refreshable_state.dart";
|
||||
|
||||
class SOShipmentListWidget extends StatefulWidget {
|
||||
const SOShipmentListWidget({
|
||||
this.title = "",
|
||||
this.filters = const {},
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
|
||||
final Map<String, String> filters;
|
||||
|
||||
final String title;
|
||||
|
||||
@override
|
||||
_SOShipmentListWidgetState createState() => _SOShipmentListWidgetState();
|
||||
}
|
||||
|
||||
class _SOShipmentListWidgetState
|
||||
extends RefreshableState<SOShipmentListWidget> {
|
||||
_SOShipmentListWidgetState();
|
||||
|
||||
@override
|
||||
String getAppBarTitle() => widget.title;
|
||||
|
||||
@override
|
||||
Widget getBody(BuildContext context) {
|
||||
return PaginatedSOShipmentList(widget.filters);
|
||||
}
|
||||
}
|
||||
|
||||
class PaginatedSOShipmentList extends PaginatedSearchWidget {
|
||||
const PaginatedSOShipmentList(Map<String, String> filters)
|
||||
|
|
@ -51,15 +80,21 @@ class _PaginatedSOShipmentListState
|
|||
Widget buildItem(BuildContext context, InvenTreeModel model) {
|
||||
InvenTreeSalesOrderShipment shipment = model as InvenTreeSalesOrderShipment;
|
||||
|
||||
InvenTreeSalesOrder? order = shipment.order;
|
||||
return ListTile(
|
||||
title: Text(shipment.reference),
|
||||
subtitle: Text(shipment.tracking_number),
|
||||
leading: shipment.shipped
|
||||
title: Text(
|
||||
"${order?.reference ?? L10().salesOrder} - ${shipment.reference}",
|
||||
),
|
||||
subtitle: Text(order?.description ?? L10().description),
|
||||
onTap: () async {
|
||||
shipment.goToDetailPage(context);
|
||||
},
|
||||
leading: shipment.isShipped
|
||||
? Icon(TablerIcons.calendar_check, color: COLOR_SUCCESS)
|
||||
: Icon(TablerIcons.calendar_cancel, color: COLOR_WARNING),
|
||||
trailing: shipment.shipped
|
||||
trailing: shipment.isShipped
|
||||
? LargeText(shipment.shipment_date ?? "")
|
||||
: null,
|
||||
: LargeText(L10().pending),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,12 @@
|
|||
import "package:flutter/material.dart";
|
||||
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
||||
import "package:inventree/api.dart";
|
||||
import "package:inventree/app_colors.dart";
|
||||
import "package:inventree/inventree/model.dart";
|
||||
import "package:inventree/inventree/parameter.dart";
|
||||
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/inventree/part.dart";
|
||||
import "package:inventree/widget/link_icon.dart";
|
||||
import "package:inventree/widget/paginator.dart";
|
||||
import "package:inventree/widget/progress.dart";
|
||||
import "package:inventree/widget/refreshable_state.dart";
|
||||
|
|
@ -10,16 +14,18 @@ import "package:inventree/widget/refreshable_state.dart";
|
|||
/*
|
||||
* Widget for displaying a list of parameters associated with a given Part instance
|
||||
*/
|
||||
class PartParameterWidget extends StatefulWidget {
|
||||
const PartParameterWidget(this.part);
|
||||
class ParameterWidget extends StatefulWidget {
|
||||
const ParameterWidget(this.modelType, this.modelId, this.editable) : super();
|
||||
|
||||
final InvenTreePart part;
|
||||
final String modelType;
|
||||
final int modelId;
|
||||
final bool editable;
|
||||
|
||||
@override
|
||||
_ParameterWidgetState createState() => _ParameterWidgetState();
|
||||
}
|
||||
|
||||
class _ParameterWidgetState extends RefreshableState<PartParameterWidget> {
|
||||
class _ParameterWidgetState extends RefreshableState<ParameterWidget> {
|
||||
_ParameterWidgetState();
|
||||
|
||||
@override
|
||||
|
|
@ -34,9 +40,16 @@ class _ParameterWidgetState extends RefreshableState<PartParameterWidget> {
|
|||
|
||||
@override
|
||||
Widget getBody(BuildContext context) {
|
||||
Map<String, String> filters = {"part": widget.part.pk.toString()};
|
||||
Map<String, String> filters = {
|
||||
"model_type": widget.modelType,
|
||||
"model_id": widget.modelId.toString(),
|
||||
};
|
||||
|
||||
return Column(children: [Expanded(child: PaginatedParameterList(filters))]);
|
||||
return Column(
|
||||
children: [
|
||||
Expanded(child: PaginatedParameterList(filters, widget.editable)),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -44,9 +57,11 @@ class _ParameterWidgetState extends RefreshableState<PartParameterWidget> {
|
|||
* Widget for displaying a paginated list of Part parameters
|
||||
*/
|
||||
class PaginatedParameterList extends PaginatedSearchWidget {
|
||||
const PaginatedParameterList(Map<String, String> filters)
|
||||
const PaginatedParameterList(Map<String, String> filters, this.editable)
|
||||
: super(filters: filters);
|
||||
|
||||
final bool editable;
|
||||
|
||||
@override
|
||||
String get searchTitle => L10().parameters;
|
||||
|
||||
|
|
@ -75,7 +90,7 @@ class _PaginatedParameterState
|
|||
int offset,
|
||||
Map<String, String> params,
|
||||
) async {
|
||||
final page = await InvenTreePartParameter().listPaginated(
|
||||
final page = await InvenTreeParameter().listPaginated(
|
||||
limit,
|
||||
offset,
|
||||
filters: params,
|
||||
|
|
@ -84,7 +99,7 @@ class _PaginatedParameterState
|
|||
return page;
|
||||
}
|
||||
|
||||
Future<void> editParameter(InvenTreePartParameter parameter) async {
|
||||
Future<void> editParameter(InvenTreeParameter parameter) async {
|
||||
// Checkbox values are handled separately
|
||||
if (parameter.is_checkbox) {
|
||||
return;
|
||||
|
|
@ -101,7 +116,7 @@ class _PaginatedParameterState
|
|||
|
||||
@override
|
||||
Widget buildItem(BuildContext context, InvenTreeModel model) {
|
||||
InvenTreePartParameter parameter = model as InvenTreePartParameter;
|
||||
InvenTreeParameter parameter = model as InvenTreeParameter;
|
||||
|
||||
String title = parameter.name;
|
||||
|
||||
|
|
@ -116,7 +131,7 @@ class _PaginatedParameterState
|
|||
? Switch(
|
||||
value: parameter.as_bool,
|
||||
onChanged: (bool value) {
|
||||
if (parameter.canEdit) {
|
||||
if (widget.editable) {
|
||||
showLoadingOverlay();
|
||||
parameter.update(values: {"data": value.toString()}).then((
|
||||
value,
|
||||
|
|
@ -131,10 +146,47 @@ class _PaginatedParameterState
|
|||
onTap: parameter.is_checkbox
|
||||
? null
|
||||
: () async {
|
||||
if (parameter.canEdit) {
|
||||
if (widget.editable) {
|
||||
editParameter(parameter);
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Return a ListTile to display parameters for the specified model
|
||||
*/
|
||||
ListTile? ShowParametersItem(
|
||||
BuildContext context,
|
||||
String modelType,
|
||||
int modelId,
|
||||
int parameterCount,
|
||||
bool editable,
|
||||
) {
|
||||
// Note: Currently cannot add parameters from the app,
|
||||
// So, if there are no parameters, do not show the item
|
||||
if (parameterCount == 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!InvenTreeAPI().supportsModernParameters) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return ListTile(
|
||||
title: Text(L10().parameters),
|
||||
leading: Icon(TablerIcons.list_details, color: COLOR_ACTION),
|
||||
trailing: LinkIcon(
|
||||
text: parameterCount > 0 ? parameterCount.toString() : null,
|
||||
),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => ParameterWidget(modelType, modelId, editable),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
@ -4,6 +4,8 @@ import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
|
|||
|
||||
import "package:inventree/app_colors.dart";
|
||||
import "package:inventree/barcode/barcode.dart";
|
||||
import "package:inventree/inventree/attachment.dart";
|
||||
import "package:inventree/inventree/parameter.dart";
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/helpers.dart";
|
||||
|
||||
|
|
@ -15,10 +17,10 @@ import "package:inventree/preferences.dart";
|
|||
|
||||
import "package:inventree/widget/attachment_widget.dart";
|
||||
import "package:inventree/widget/link_icon.dart";
|
||||
import "package:inventree/widget/parameter_widget.dart";
|
||||
import "package:inventree/widget/part/bom_list.dart";
|
||||
import "package:inventree/widget/part/part_list.dart";
|
||||
import "package:inventree/widget/notes_widget.dart";
|
||||
import "package:inventree/widget/part/part_parameter_widget.dart";
|
||||
import "package:inventree/widget/part/part_pricing.dart";
|
||||
import "package:inventree/widget/progress.dart";
|
||||
import "package:inventree/widget/part/category_display.dart";
|
||||
|
|
@ -47,13 +49,13 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
|||
|
||||
InvenTreePart? parentPart;
|
||||
|
||||
int parameterCount = 0;
|
||||
InvenTreeStockLocation? defaultLocation;
|
||||
|
||||
bool allowLabelPrinting = false;
|
||||
bool showParameters = false;
|
||||
bool showBom = false;
|
||||
bool showPricing = false;
|
||||
|
||||
int parameterCount = 0;
|
||||
int attachmentCount = 0;
|
||||
int bomCount = 0;
|
||||
int usedInCount = 0;
|
||||
|
|
@ -61,8 +63,6 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
|||
|
||||
InvenTreePartPricing? partPricing;
|
||||
|
||||
List<Map<String, dynamic>> labels = [];
|
||||
|
||||
@override
|
||||
String getAppBarTitle() => L10().partDetails;
|
||||
|
||||
|
|
@ -119,19 +119,13 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
|||
);
|
||||
}
|
||||
|
||||
if (labels.isNotEmpty) {
|
||||
if (allowLabelPrinting && api.supportsModernLabelPrinting) {
|
||||
actions.add(
|
||||
SpeedDialChild(
|
||||
child: Icon(TablerIcons.printer),
|
||||
label: L10().printLabel,
|
||||
onTap: () async {
|
||||
selectAndPrintLabel(
|
||||
context,
|
||||
labels,
|
||||
widget.part.pk,
|
||||
"part",
|
||||
"part=${widget.part.pk}",
|
||||
);
|
||||
selectAndPrintLabel(context, "part", widget.part.pk);
|
||||
},
|
||||
),
|
||||
);
|
||||
|
|
@ -158,10 +152,6 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
|||
INV_PART_SHOW_PRICING,
|
||||
true,
|
||||
);
|
||||
showParameters = await InvenTreeSettingsManager().getBool(
|
||||
INV_PART_SHOW_PARAMETERS,
|
||||
true,
|
||||
);
|
||||
showBom = await InvenTreeSettingsManager().getBool(INV_PART_SHOW_BOM, true);
|
||||
allowLabelPrinting = await InvenTreeSettingsManager().getBool(
|
||||
INV_ENABLE_LABEL_PRINTING,
|
||||
|
|
@ -177,33 +167,71 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
|||
// If the part points to a parent "template" part, request that too
|
||||
int? templatePartId = part.variantOf;
|
||||
|
||||
if (templatePartId == null) {
|
||||
parentPart = null;
|
||||
} else {
|
||||
final result = await InvenTreePart().get(templatePartId);
|
||||
|
||||
if (result != null && result is InvenTreePart) {
|
||||
parentPart = result;
|
||||
} else {
|
||||
parentPart = null;
|
||||
if (templatePartId != null) {
|
||||
InvenTreePart().get(templatePartId).then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
parentPart = value as InvenTreePart?;
|
||||
});
|
||||
}
|
||||
});
|
||||
} else if (mounted) {
|
||||
setState(() {
|
||||
parentPart = null;
|
||||
});
|
||||
}
|
||||
|
||||
// Is there a default location specified for this part?
|
||||
int? defaultLocationId = part.defaultLocation;
|
||||
|
||||
if (defaultLocationId != null) {
|
||||
InvenTreeStockLocation().get(defaultLocationId).then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
defaultLocation = value as InvenTreeStockLocation?;
|
||||
});
|
||||
}
|
||||
});
|
||||
} else if (mounted) {
|
||||
setState(() {
|
||||
defaultLocation = null;
|
||||
});
|
||||
}
|
||||
|
||||
// Request part test templates
|
||||
if (part.isTestable) {
|
||||
part.getTestTemplates().then((value) {
|
||||
if (mounted) {
|
||||
setState(() {});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Request the number of attachments
|
||||
InvenTreePartAttachment().countAttachments(part.pk).then((int value) {
|
||||
if (api.supportsModernAttachments) {
|
||||
InvenTreeAttachment()
|
||||
.countAttachments(InvenTreePart.MODEL_TYPE, part.pk)
|
||||
.then((int value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
attachmentCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Request the number of parameters
|
||||
if (api.supportsModernParameters) {
|
||||
InvenTreeParameter()
|
||||
.countParameters(InvenTreePart.MODEL_TYPE, part.pk)
|
||||
.then((int value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
parameterCount = value;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// If show pricing information?
|
||||
if (showPricing) {
|
||||
|
|
@ -248,26 +276,6 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
|||
});
|
||||
}
|
||||
});
|
||||
|
||||
List<Map<String, dynamic>> _labels = [];
|
||||
allowLabelPrinting &= api.supportsMixin("labels");
|
||||
|
||||
if (allowLabelPrinting) {
|
||||
String model_type = api.supportsModernLabelPrinting
|
||||
? InvenTreePart.MODEL_TYPE
|
||||
: "part";
|
||||
String item_key = api.supportsModernLabelPrinting ? "items" : "part";
|
||||
|
||||
_labels = await getLabelTemplates(model_type, {
|
||||
item_key: widget.part.pk.toString(),
|
||||
});
|
||||
}
|
||||
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
labels = _labels;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void _editPartDialog(BuildContext context) {
|
||||
|
|
@ -412,6 +420,20 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
|||
),
|
||||
);
|
||||
|
||||
if (defaultLocation != null) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().locationDefault),
|
||||
subtitle: Text(defaultLocation!.pathstring),
|
||||
leading: Icon(TablerIcons.map_pin),
|
||||
trailing: LinkIcon(),
|
||||
onTap: () {
|
||||
defaultLocation?.goToDetailPage(context);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
if (showPricing && partPricing != null) {
|
||||
String pricing = formatPriceRange(
|
||||
partPricing?.overallMin,
|
||||
|
|
@ -524,7 +546,7 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
|||
}
|
||||
|
||||
// External link?
|
||||
if (part.link.isNotEmpty) {
|
||||
if (part.hasLink) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text("${part.link}"),
|
||||
|
|
@ -587,29 +609,31 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
|||
),
|
||||
);
|
||||
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().attachments),
|
||||
leading: Icon(TablerIcons.file, color: COLOR_ACTION),
|
||||
trailing: LinkIcon(
|
||||
text: attachmentCount > 0 ? attachmentCount.toString() : null,
|
||||
),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
ListTile? parameterTile = ShowParametersItem(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => AttachmentWidget(
|
||||
InvenTreePartAttachment(),
|
||||
InvenTreePart.MODEL_TYPE,
|
||||
part.pk,
|
||||
parameterCount,
|
||||
part.canEdit,
|
||||
);
|
||||
|
||||
if (parameterTile != null) {
|
||||
tiles.add(parameterTile);
|
||||
}
|
||||
|
||||
ListTile? attachmentTile = ShowAttachmentsItem(
|
||||
context,
|
||||
InvenTreePart.MODEL_TYPE,
|
||||
part.pk,
|
||||
L10().part,
|
||||
attachmentCount,
|
||||
part.canEdit,
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
if (attachmentTile != null) {
|
||||
tiles.add(attachmentTile);
|
||||
}
|
||||
|
||||
return tiles;
|
||||
}
|
||||
|
||||
|
|
@ -703,10 +727,6 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
|||
List<Widget> getTabIcons(BuildContext context) {
|
||||
List<Widget> icons = [Tab(text: L10().details), Tab(text: L10().stock)];
|
||||
|
||||
if (showParameters) {
|
||||
icons.add(Tab(text: L10().parameters));
|
||||
}
|
||||
|
||||
return icons;
|
||||
}
|
||||
|
||||
|
|
@ -719,11 +739,6 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
|
|||
),
|
||||
PaginatedStockItemList({"part": part.pk.toString()}),
|
||||
];
|
||||
|
||||
if (showParameters) {
|
||||
tabs.add(PaginatedParameterList({"part": part.pk.toString()}));
|
||||
}
|
||||
|
||||
return tabs;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ void showSnackIcon(
|
|||
},
|
||||
),
|
||||
backgroundColor: backgroundColor,
|
||||
showCloseIcon: true,
|
||||
action: onAction == null
|
||||
? null
|
||||
: SnackBarAction(
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class _LocationDisplayState extends RefreshableState<LocationDisplayWidget> {
|
|||
|
||||
final InvenTreeStockLocation? location;
|
||||
|
||||
List<Map<String, dynamic>> labels = [];
|
||||
bool allowLabelPrinting = false;
|
||||
|
||||
@override
|
||||
String getAppBarTitle() {
|
||||
|
|
@ -179,19 +179,15 @@ class _LocationDisplayState extends RefreshableState<LocationDisplayWidget> {
|
|||
);
|
||||
}
|
||||
|
||||
if (widget.location != null && labels.isNotEmpty) {
|
||||
if (widget.location != null &&
|
||||
allowLabelPrinting &&
|
||||
api.supportsModernLabelPrinting) {
|
||||
actions.add(
|
||||
SpeedDialChild(
|
||||
child: Icon(TablerIcons.printer),
|
||||
label: L10().printLabel,
|
||||
onTap: () async {
|
||||
selectAndPrintLabel(
|
||||
context,
|
||||
labels,
|
||||
widget.location!.pk,
|
||||
"location",
|
||||
"location=${widget.location!.pk}",
|
||||
);
|
||||
selectAndPrintLabel(context, "stocklocation", widget.location!.pk);
|
||||
},
|
||||
),
|
||||
);
|
||||
|
|
@ -236,33 +232,10 @@ class _LocationDisplayState extends RefreshableState<LocationDisplayWidget> {
|
|||
}
|
||||
}
|
||||
|
||||
List<Map<String, dynamic>> _labels = [];
|
||||
bool allowLabelPrinting = await InvenTreeSettingsManager().getBool(
|
||||
allowLabelPrinting = await InvenTreeSettingsManager().getBool(
|
||||
INV_ENABLE_LABEL_PRINTING,
|
||||
true,
|
||||
);
|
||||
allowLabelPrinting &= api.supportsMixin("labels");
|
||||
|
||||
if (allowLabelPrinting) {
|
||||
if (widget.location != null) {
|
||||
String model_type = api.supportsModernLabelPrinting
|
||||
? InvenTreeStockLocation.MODEL_TYPE
|
||||
: "location";
|
||||
String item_key = api.supportsModernLabelPrinting
|
||||
? "items"
|
||||
: "location";
|
||||
|
||||
_labels = await getLabelTemplates(model_type, {
|
||||
item_key: widget.location!.pk.toString(),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
labels = _labels;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _newLocation(BuildContext context) async {
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import "package:inventree/app_colors.dart";
|
|||
import "package:inventree/barcode/barcode.dart";
|
||||
import "package:inventree/barcode/stock.dart";
|
||||
import "package:inventree/helpers.dart";
|
||||
import "package:inventree/inventree/attachment.dart";
|
||||
import "package:inventree/inventree/sales_order.dart";
|
||||
import "package:inventree/l10.dart";
|
||||
import "package:inventree/api.dart";
|
||||
|
|
@ -49,6 +50,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
|||
|
||||
// Linked data fields
|
||||
InvenTreePart? part;
|
||||
InvenTreeStockLocation? defaultLocation;
|
||||
InvenTreeSalesOrder? salesOrder;
|
||||
InvenTreeCompany? customer;
|
||||
|
||||
|
|
@ -127,19 +129,13 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
|||
);
|
||||
}
|
||||
|
||||
if (labels.isNotEmpty) {
|
||||
if (allowLabelPrinting && api.supportsModernLabelPrinting) {
|
||||
actions.add(
|
||||
SpeedDialChild(
|
||||
child: Icon(TablerIcons.printer),
|
||||
label: L10().printLabel,
|
||||
onTap: () async {
|
||||
selectAndPrintLabel(
|
||||
context,
|
||||
labels,
|
||||
widget.item.pk,
|
||||
"stock",
|
||||
"item=${widget.item.pk}",
|
||||
);
|
||||
selectAndPrintLabel(context, "stockitem", widget.item.pk);
|
||||
},
|
||||
),
|
||||
);
|
||||
|
|
@ -195,10 +191,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
|||
return actions;
|
||||
}
|
||||
|
||||
// Is label printing enabled for this StockItem?
|
||||
// This will be determined when the widget is loaded
|
||||
List<Map<String, dynamic>> labels = [];
|
||||
|
||||
bool allowLabelPrinting = false;
|
||||
int attachmentCount = 0;
|
||||
|
||||
@override
|
||||
|
|
@ -234,6 +227,23 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
|||
|
||||
stockShowTests &= part?.isTrackable ?? false;
|
||||
|
||||
// Request default location
|
||||
int? defaultLocationId = part?.defaultLocation;
|
||||
|
||||
if (defaultLocationId != null) {
|
||||
InvenTreeStockLocation().get(defaultLocationId).then((value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
defaultLocation = value as InvenTreeStockLocation?;
|
||||
});
|
||||
}
|
||||
});
|
||||
} else if (mounted) {
|
||||
setState(() {
|
||||
defaultLocation = null;
|
||||
});
|
||||
}
|
||||
|
||||
// Request test results (async)
|
||||
if (stockShowTests) {
|
||||
widget.item.getTestResults().then((value) {
|
||||
|
|
@ -246,9 +256,9 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
|||
}
|
||||
|
||||
// Request the number of attachments
|
||||
InvenTreeStockItemAttachment().countAttachments(widget.item.pk).then((
|
||||
int value,
|
||||
) {
|
||||
InvenTreeAttachment()
|
||||
.countAttachments(InvenTreeStockItem.MODEL_TYPE, widget.item.pk)
|
||||
.then((int value) {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
attachmentCount = value;
|
||||
|
|
@ -300,31 +310,10 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
|||
}
|
||||
}
|
||||
|
||||
List<Map<String, dynamic>> _labels = [];
|
||||
bool allowLabelPrinting = await InvenTreeSettingsManager().getBool(
|
||||
allowLabelPrinting = await InvenTreeSettingsManager().getBool(
|
||||
INV_ENABLE_LABEL_PRINTING,
|
||||
true,
|
||||
);
|
||||
allowLabelPrinting &= api.supportsMixin("labels");
|
||||
|
||||
// Request information on labels available for this stock item
|
||||
if (allowLabelPrinting) {
|
||||
String model_type = api.supportsModernLabelPrinting
|
||||
? InvenTreeStockItem.MODEL_TYPE
|
||||
: "stock";
|
||||
String item_key = api.supportsModernLabelPrinting ? "items" : "item";
|
||||
|
||||
// Clear the existing labels list
|
||||
_labels = await getLabelTemplates(model_type, {
|
||||
item_key: widget.item.pk.toString(),
|
||||
});
|
||||
}
|
||||
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
labels = _labels;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/// Delete the stock item from the database
|
||||
|
|
@ -569,6 +558,21 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
|||
);
|
||||
}
|
||||
|
||||
if (defaultLocation != null &&
|
||||
defaultLocation?.pk != widget.item.locationId) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().locationDefault),
|
||||
subtitle: Text(defaultLocation!.pathstring),
|
||||
leading: Icon(TablerIcons.map_pin),
|
||||
trailing: LinkIcon(),
|
||||
onTap: () {
|
||||
defaultLocation?.goToDetailPage(context);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// Quantity information
|
||||
if (widget.item.isSerialized()) {
|
||||
tiles.add(
|
||||
|
|
@ -744,13 +748,13 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
|||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().lastStocktake),
|
||||
subtitle: Text(widget.item.stocktakeDateString),
|
||||
trailing: LargeText(widget.item.stocktakeDateString),
|
||||
leading: Icon(TablerIcons.calendar),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
if (widget.item.link.isNotEmpty) {
|
||||
if (widget.item.hasLink) {
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text("${widget.item.link}"),
|
||||
|
|
@ -834,29 +838,19 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
|
|||
),
|
||||
);
|
||||
|
||||
tiles.add(
|
||||
ListTile(
|
||||
title: Text(L10().attachments),
|
||||
leading: Icon(TablerIcons.file, color: COLOR_ACTION),
|
||||
trailing: LinkIcon(
|
||||
text: attachmentCount > 0 ? attachmentCount.toString() : null,
|
||||
),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
ListTile? attachmentTile = ShowAttachmentsItem(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => AttachmentWidget(
|
||||
InvenTreeStockItemAttachment(),
|
||||
InvenTreeStockItem.MODEL_TYPE,
|
||||
widget.item.pk,
|
||||
L10().stockItem,
|
||||
attachmentCount,
|
||||
widget.item.canEdit,
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
if (attachmentTile != null) {
|
||||
tiles.add(attachmentTile);
|
||||
}
|
||||
|
||||
return tiles;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
name: inventree
|
||||
description: InvenTree stock management
|
||||
|
||||
version: 0.19.2+101
|
||||
version: 0.21.1+107
|
||||
|
||||
environment:
|
||||
sdk: ^3.8.1
|
||||
|
|
|
|||
60
update-flutter-nix.sh
Normal file
60
update-flutter-nix.sh
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
# 0. Abhängigkeiten prüfen
|
||||
for cmd in jq curl sed nix; do
|
||||
command -v $cmd >/dev/null 2>&1 || { echo "Fehler: $cmd nicht installiert!"; exit 1; }
|
||||
done
|
||||
|
||||
# 1. Version aus .fvmrc extrahieren
|
||||
if [ ! -f .fvmrc ]; then
|
||||
echo "Fehler: .fvmrc nicht gefunden!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FLUTTER_VERSION=$(jq -r .flutter .fvmrc)
|
||||
echo "Gesuchte Flutter Version: $FLUTTER_VERSION"
|
||||
|
||||
# 2. Commit-Hash und Version aus Devbox-API holen
|
||||
API_URL="https://search.devbox.sh/v2/pkg?name=flutter"
|
||||
RELEASES_JSON=$(curl -s "$API_URL")
|
||||
|
||||
# Alle Versionen extrahieren und sortieren
|
||||
ALL_VERSIONS=$(echo "$RELEASES_JSON" | jq -r '.releases[].version' | sort -V)
|
||||
|
||||
# Finde die gewünschte oder nächsthöhere Version
|
||||
FOUND_VERSION=$(echo "$ALL_VERSIONS" | awk -v v="$FLUTTER_VERSION" '$0 >= v { print; exit }')
|
||||
|
||||
if [ -z "$FOUND_VERSION" ]; then
|
||||
echo "Fehler: Keine passende Flutter-Version gefunden."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$FOUND_VERSION" != "$FLUTTER_VERSION" ]; then
|
||||
echo "Hinweis: Exakte Version nicht gefunden, benutze stattdessen Version $FOUND_VERSION."
|
||||
fi
|
||||
|
||||
# Commit-Hash für x86_64-linux extrahieren
|
||||
COMMIT=$(echo "$RELEASES_JSON" | jq -r --arg v "$FOUND_VERSION" '.releases[] | select(.version==$v) | .platforms[] | select(.system=="x86_64-linux") | .commit_hash' | head -n 1)
|
||||
|
||||
if [ -z "$COMMIT" ] || [ "$COMMIT" == "null" ]; then
|
||||
echo "Fehler: Kein Commit-Hash für Version $FOUND_VERSION und Plattform x86_64-linux gefunden."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Gefundener Commit: $COMMIT (Version: $FOUND_VERSION)"
|
||||
|
||||
|
||||
# 3. Die flake.nix patchen (Backup anlegen)
|
||||
sed -i.bak "s|nixpkgs-flutter.url = \"github:NixOS/nixpkgs/[a-f0-9]*\";|nixpkgs-flutter.url = \"github:NixOS/nixpkgs/$COMMIT\";|" flake.nix
|
||||
|
||||
# 4. Den Flake-Lock aktualisieren
|
||||
nix flake update nixpkgs-flutter
|
||||
|
||||
# 5. Optional: direnv reload
|
||||
if command -v direnv >/dev/null 2>&1; then
|
||||
direnv reload
|
||||
fi
|
||||
|
||||
echo "Erfolgreich! Die flake.nix nutzt nun den Commit für Flutter $FLUTTER_VERSION (oder höher)."
|
||||
Loading…
Add table
Add a link
Reference in a new issue